UODemo Wiki
uo98_uodemo
http://uodemo.uo98.org/index.php?title=Main_Page
MediaWiki 1.28.0-alpha
first-letter
Media
Special
Talk
User
User talk
UODemo Wiki
UODemo Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Main Page
0
1
1
2009-05-20T19:54:23Z
MediaWiki default
0
wikitext
text/x-wiki
<big>'''MediaWiki has been successfully installed.'''</big>
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
5
1
2009-05-21T03:36:07Z
Derrick
2
wikitext
text/x-wiki
<big>'''MediaWiki has been successfully installed.'''</big>
== [[Special:AllPages]] ==
8
5
2009-05-21T10:11:00Z
Batlin
3
/* Special:AllPages */
wikitext
text/x-wiki
<big>'''MediaWiki has been successfully installed.'''</big>
'''Welcome the UO Demo Wiki.'''
== [[Special:AllPages]] ==
9
8
2009-05-21T10:14:27Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
== [[Special:AllPages]] ==
10
9
2009-05-21T10:19:39Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
[[rundir]]
== [[Special:AllPages]] ==
15
10
2009-05-21T11:14:19Z
81.83.65.57
0
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
After installing UO Demo you see two files : uodemo.exe and uodemo.dat.
uodemo.exe is the executable, it's contains authentic server code and a full client.
uodemo.dat is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys the decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[rundir]].
== [[Special:AllPages]] ==
16
15
2009-05-21T20:24:59Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
After installing UO Demo you see two files : uodemo.exe and uodemo.dat.
uodemo.exe is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys the decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== [[Special:AllPages]] ==
30
16
2009-05-22T11:56:56Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
After installing UO Demo you see two files : uodemo.exe and uodemo.dat.
uodemo.exe is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== [[Special:AllPages]] ==
34
30
2009-05-22T12:00:42Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== [[Special:AllPages]] ==
Dynamic0.mul
0
2
2
2009-05-20T22:35:37Z
Derrick
2
Basic description
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Identified types (and guesses):
P=Player
E=Environment Var?
N=NPC/Creature
W=Wearable
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
C=Container
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
3
2
2009-05-20T22:36:17Z
Derrick
2
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
P=Player
E=Environment Var?
N=NPC/Creature
W=Wearable
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
C=Container
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
25
3
2009-05-22T02:37:59Z
Derrick
2
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
P=Player
E=Environment Var?
N=NPC/Creature
S=Shopkeeper
W=Wearable
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
C=Container
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
Dynidx0.mul
0
3
4
2009-05-21T03:34:00Z
Derrick
2
preliminary and very poorly formated description of the file
wikitext
text/x-wiki
This is an index into the root objects of dynamic0.mul
Root objects are those that begin with ''@=<value>'' and end with ''end''
Sub objects of each root entity are not indexed
the index format (appears to be):
int32 position
int32 length
repeating for each object
7
4
2009-05-21T03:55:35Z
Derrick
2
wikitext
text/x-wiki
This is an index into the root objects of dynamic0.mul
Root objects are those that begin with ''@=<value>'' and end with ''end''
Sub objects of each root entity are not indexed
the index format (appears to be):
int32 position
int32 length
int32 unknown (always 0x0000)
repeating for each object
Help:Contents
12
4
6
2009-05-21T03:37:38Z
Derrick
2
Created page with 'Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [http://www.mediawiki.org/wiki/Manual...'
wikitext
text/x-wiki
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
Rundir
0
5
11
2009-05-21T10:26:20Z
Batlin
3
Created page with 'All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons...'
wikitext
text/x-wiki
All the files inside the UODEMO.DAT file begin with "..\.rundir".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons.
NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]].
13
11
2009-05-21T10:32:00Z
Batlin
3
wikitext
text/x-wiki
All the files inside the UODEMO.DAT file begin with "..\.rundir".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons.
NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]].
uogolddemo contains 6 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul.
14
13
2009-05-21T10:32:55Z
Batlin
3
wikitext
text/x-wiki
All the files inside the UODEMO.DAT file begin with "..\.rundir".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons.
NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]].
uogolddemo contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul.
17
14
2009-05-21T20:25:25Z
Batlin
3
Replaced content with 'Contents moved to [[.rundir]]'
wikitext
text/x-wiki
Contents moved to [[.rundir]]
SERVERNAME
0
6
12
2009-05-21T10:28:49Z
Batlin
3
Created page with 'SERVERNAME is a environment variable you can set to have the uodemo operate on a subdirectory other than the default "uogolddemo". However, doing this on the default uodemo will...'
wikitext
text/x-wiki
SERVERNAME is a environment variable you can set to have the uodemo operate on a subdirectory other than the default "uogolddemo". However, doing this on the default uodemo will actually make the demo stop because it cannot find that directory inside UODEMO.DAT.
To make this work, UODEMO.DAT needs to be edited to include the new server directory.
21
12
2009-05-21T20:34:18Z
Batlin
3
wikitext
text/x-wiki
'''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[UODEMO.DAT]].
To make this work, [[UODEMO.DAT]] needs to be edited to include the new server directory.
41
21
2009-05-26T09:30:57Z
Batlin
3
wikitext
text/x-wiki
'''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[uodemo.dat]].
To make this work, [[uodemo.dat]] needs to be edited to include the new server directory.
.rundir
0
7
18
2009-05-21T20:25:35Z
Batlin
3
Created page with 'All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons...'
wikitext
text/x-wiki
All the files inside the UODEMO.DAT file begin with "..\.rundir".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons.
NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]].
uogolddemo contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul.
19
18
2009-05-21T20:31:13Z
Batlin
3
wikitext
text/x-wiki
All the files inside the UODEMO.DAT file begin with "..\'''.rundir'''".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons.
26
19
2009-05-22T08:50:12Z
81.83.65.57
0
wikitext
text/x-wiki
All the files inside the [[UODEMO.DAT]] file begin with "..\'''.rundir'''".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons.
27
26
2009-05-22T08:50:51Z
81.83.65.57
0
wikitext
text/x-wiki
All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons.
42
27
2009-05-26T09:52:23Z
Batlin
3
wikitext
text/x-wiki
All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, [[scripts]], [[uogolddemo]], weapons.
Uogolddemo
0
8
20
2009-05-21T20:32:40Z
Batlin
3
Created page with 'The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. NOTE: The "...'
wikitext
text/x-wiki
The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul.
NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]].
36
20
2009-05-22T12:10:13Z
Batlin
3
wikitext
text/x-wiki
The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, [[server.txt]], staidx0.mul, statics0.mul.
NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]].
Uodemo.dat
0
9
22
2009-05-21T20:48:26Z
Batlin
3
Created page with 'This is an custom made archive file for the Ultima Online Gold Demo. It consists if minimum 1 header and can contain up to 3000 files. If the filename in the header is equal to ...'
wikitext
text/x-wiki
This is an custom made archive file for the Ultima Online Gold Demo.
It consists if minimum 1 header and can contain up to 3000 files.
If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the end of the header area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
23
22
2009-05-21T20:53:37Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code.
If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire arhive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the end of the header area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
24
23
2009-05-21T20:57:27Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code.
If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire arhive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the end of the header area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
28
24
2009-05-22T08:52:19Z
81.83.65.57
0
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynanamic in size)
It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code.
If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire arhive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the end of the header area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
29
28
2009-05-22T08:54:12Z
81.83.65.57
0
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynanamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire arhive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
31
29
2009-05-22T11:58:02Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire arhive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32).
32
31
2009-05-22T11:58:52Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
33
32
2009-05-22T11:59:30Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
39
33
2009-05-26T07:54:49Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [[http://aluigi.altervista.org/papers.htm#others-file]]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
40
39
2009-05-26T07:56:24Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadyonly; // 0 = writeable, <> = read-only
int32 encryptedsize; // encrypted filesize (not the actual filesize)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual filesize can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so.
47
40
2009-06-08T09:28:26Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadonly; // 0: writeable, <>0: read-only
int32 encryptedsize; // encrypted file size (not the actual file size)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual file size can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works.
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so.
48
47
2009-06-08T09:29:38Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadonly; // 0: writeable, <>0: read-only
int32 encryptedsize; // encrypted file size (not the actual file size)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual file size can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works.
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so.
Uodemo.exe
0
10
35
2009-05-22T12:07:37Z
Batlin
3
Created page with 'This is the Win32 executable for the Ultima Ultima Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it...'
wikitext
text/x-wiki
This is the Win32 executable for the Ultima Ultima Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation.
The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know.
It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory.
Server.txt
0
11
37
2009-05-22T12:23:19Z
Batlin
3
Created page with ''''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses. It is a text file and each line should hav...'
wikitext
text/x-wiki
'''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses.
It is a text file and each line should have the following structure :
<VARIABLE VALUE>
This is a list of supported string variables : name.
This is a list of supported integer variables : id, port, width, height, x, y, startx, starty, spawnclient.
This is a list of supported R/W variables : statics, terrain, art, tiledata, hues, animdata, resources, templates
R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data.
The value of some variables seem to be unused and they could be indication of how the official OSI server worked internally, for example : name, id and port.
The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo.
38
37
2009-05-22T12:35:37Z
Batlin
3
wikitext
text/x-wiki
'''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses.
It is a text file and each line should have the following structure :
<VARIABLE VALUE>.
This is a list of supported ''string'' variables : '''name'''.<br>
This is a list of supported ''integer'' variables : '''id''', '''port''', '''width''', '''height''', '''x''', '''y''', '''startx''', '''starty''', '''spawnclient'''.<br>
This is a list of supported ''R/W'' variables : '''animdata''', '''art''', '''hues''', '''statics''', '''templates''', '''terrain''', '''resources''', '''tiledata'''
R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data.
Some variables seem to be unsued in the demo and they could be indication of how the official OSI server worked internally, for example : name, id and port.
The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo.
Scripts
0
12
43
2009-05-26T09:59:30Z
Batlin
3
Created page with 'The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named sdb.txt. Th...'
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named sdb.txt.
The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. How the original scripts looked like is unknown but similar output can be re-generated by walking through the tokens created by the parser inside [[uodemo.exe]].
44
43
2009-05-29T12:11:05Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. How the original scripts looked like is unknown but similar output can be re-generated by walking through the tokens created by the parser inside [[uodemo.exe]].
49
44
2009-06-08T10:34:47Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfusicated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfusicated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfusication works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfusicated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F
50
49
2009-06-08T10:35:06Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfusicated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfusicated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfusication works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfusicated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
Sdb.txt
0
13
45
2009-05-29T12:19:56Z
Batlin
3
Created page with ''''sdb.txt''' is a file found in the [[scripts]] directory. SDB most probably stands for String DataBase. It's a text file containing strings in sequential order. The index nu...'
wikitext
text/x-wiki
'''sdb.txt''' is a file found in the [[scripts]] directory.
SDB most probably stands for String DataBase.
It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0.
It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing string is possible by the simple means of a text editor like Windows Notepad.
Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database!
46
45
2009-05-29T12:22:32Z
Batlin
3
wikitext
text/x-wiki
'''sdb.txt''' is a file found in the [[scripts]] directory.
SDB most probably stands for String DataBase.
It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0.
It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing strings is possible by the simple means of a text editor like Windows Notepad.
Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database!
Scripts
0
12
51
50
2009-06-09T08:32:55Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
52
51
2009-06-09T09:04:27Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "defines a function without declaring the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "defines a function without declaring the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
53
52
2009-06-17T21:37:20Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
71
53
2009-06-23T18:47:52Z
Batlin
3
Protected "[[Scripts]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
77
71
2009-06-23T18:51:10Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
A decompiler can be found here : [[Mass M Decompiler]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
79
77
2009-06-23T19:08:55Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
A decompiler can be found here : [[Mass M Decompiler]].
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
Uodemo.exe
0
10
54
35
2009-06-17T21:39:51Z
Batlin
3
wikitext
text/x-wiki
This is the Win32 executable for the Ultima Online Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation.
The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know.
It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory.
73
54
2009-06-23T18:48:23Z
Batlin
3
Protected "[[Uodemo.exe]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
This is the Win32 executable for the Ultima Online Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation.
The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know.
It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory.
Main Page
0
1
55
34
2009-06-17T21:41:59Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Origins of the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== [[Special:AllPages]] ==
57
55
2009-06-23T14:49:46Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Origins of the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the secrets within.
== [[Special:AllPages]] ==
60
57
2009-06-23T17:00:07Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Origins of the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
== [[Special:AllPages]] ==
63
60
2009-06-23T18:46:00Z
Batlin
3
Protected "[[Main Page]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Origins of the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
== [[Special:AllPages]] ==
85
63
2009-06-24T11:14:11Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Dating the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it's contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
== [[Special:AllPages]] ==
90
85
2009-06-25T22:43:15Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Dating the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
== [[Special:AllPages]] ==
97
90
2009-07-13T09:00:56Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Dating the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== [[Special:AllPages]] ==
Dating the Ultima Online Demo
0
14
56
2009-06-17T21:51:08Z
Batlin
3
Created page with 'To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with t...'
wikitext
text/x-wiki
To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998.
There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients.
62
56
2009-06-23T18:45:41Z
Batlin
3
Protected "[[Origins of the Ultima Online Demo]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998.
There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients.
83
62
2009-06-24T11:13:41Z
Batlin
3
moved [[Origins of the Ultima Online Demo]] to [[Dating the Ultima Online Demo]]
wikitext
text/x-wiki
To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998.
There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients.
86
83
2009-06-24T11:15:17Z
Batlin
3
wikitext
text/x-wiki
To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998.
There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998 but some patches (not all) from the June 1998 patch are also included. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients.
Uodemo+
0
15
58
2009-06-23T15:45:19Z
Batlin
3
Created page with '== Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title a...'
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object.
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file with requiring extra patches.
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6.
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic.
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files.
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number.
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist.
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension.
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one.
59
58
2009-06-23T16:18:02Z
Batlin
3
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object.
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches.
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6.
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic.
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files.
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number.
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist.
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension.
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one.
64
59
2009-06-23T18:46:15Z
Batlin
3
Protected "[[Uodemo+]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object.
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches.
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6.
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic.
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files.
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number.
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist.
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension.
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one.
82
64
2009-06-24T10:54:51Z
Batlin
3
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar]
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar]
88
82
2009-06-24T11:27:03Z
Batlin
3
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rarDownload UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar Download UoDemo+ (Publish 2)]
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
89
88
2009-06-25T07:48:20Z
Batlin
3
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar Download UoDemo+ (Publish 2)]
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
94
89
2009-07-09T18:43:54Z
Batlin
3
/* Publish 2 */
wikitext
text/x-wiki
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
95
94
2009-07-13T08:50:45Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 11+: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
96
95
2009-07-13T08:58:55Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 11+: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
Secrets
0
16
61
2009-06-23T17:15:41Z
Batlin
3
Created page with 'The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will le...'
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br>
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br>
(with thanks to Dies Irae)<br>
67
61
2009-06-23T18:47:03Z
Batlin
3
Protected "[[Secrets]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br>
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br>
(with thanks to Dies Irae)<br>
91
67
2009-06-25T23:06:20Z
Batlin
3
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br>
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br>
(with thanks to Dies Irae)<br>
'''login.txt'''<br>
The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br>
93
91
2009-07-03T11:03:16Z
Batlin
3
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br>
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br>
(with thanks to Dies Irae)<br>
'''login.txt'''<br>
The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br>
.rundir
0
7
65
42
2009-06-23T18:46:39Z
Batlin
3
Protected "[[.rundir]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''".
This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, [[scripts]], [[uogolddemo]], weapons.
SERVERNAME
0
6
66
41
2009-06-23T18:46:50Z
Batlin
3
Protected "[[SERVERNAME]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
'''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[uodemo.dat]].
To make this work, [[uodemo.dat]] needs to be edited to include the new server directory.
Uodemo.dat
0
9
68
48
2009-06-23T18:47:14Z
Batlin
3
Protected "[[Uodemo.dat]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadonly; // 0: writeable, <>0: read-only
int32 encryptedsize; // encrypted file size (not the actual file size)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual file size can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works.
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so.
Dynamic0.mul
0
2
69
25
2009-06-23T18:47:28Z
Batlin
3
Protected "[[Dynamic0.mul]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
P=Player
E=Environment Var?
N=NPC/Creature
S=Shopkeeper
W=Wearable
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
C=Container
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
Dynidx0.mul
0
3
70
7
2009-06-23T18:47:34Z
Batlin
3
Protected "[[Dynidx0.mul]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
This is an index into the root objects of dynamic0.mul
Root objects are those that begin with ''@=<value>'' and end with ''end''
Sub objects of each root entity are not indexed
the index format (appears to be):
int32 position
int32 length
int32 unknown (always 0x0000)
repeating for each object
Server.txt
0
11
72
38
2009-06-23T18:48:05Z
Batlin
3
Protected "[[Server.txt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
'''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses.
It is a text file and each line should have the following structure :
<VARIABLE VALUE>.
This is a list of supported ''string'' variables : '''name'''.<br>
This is a list of supported ''integer'' variables : '''id''', '''port''', '''width''', '''height''', '''x''', '''y''', '''startx''', '''starty''', '''spawnclient'''.<br>
This is a list of supported ''R/W'' variables : '''animdata''', '''art''', '''hues''', '''statics''', '''templates''', '''terrain''', '''resources''', '''tiledata'''
R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data.
Some variables seem to be unsued in the demo and they could be indication of how the official OSI server worked internally, for example : name, id and port.
The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo.
Rundir
0
5
74
17
2009-06-23T18:48:39Z
Batlin
3
Protected "[[Rundir]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
Contents moved to [[.rundir]]
Sdb.txt
0
13
75
46
2009-06-23T18:49:01Z
Batlin
3
Protected "[[Sdb.txt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
'''sdb.txt''' is a file found in the [[scripts]] directory.
SDB most probably stands for String DataBase.
It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0.
It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing strings is possible by the simple means of a text editor like Windows Notepad.
Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database!
Uogolddemo
0
8
76
36
2009-06-23T18:49:24Z
Batlin
3
Protected "[[Uogolddemo]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, [[server.txt]], staidx0.mul, statics0.mul.
NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]].
Mass M Decompiler
0
17
78
2009-06-23T19:06:59Z
Batlin
3
Created page with 'Presenting to you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C w...'
wikitext
text/x-wiki
Presenting to you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
Download [[File:Mass M Decompiler (Publish 1)]].
80
78
2009-06-23T19:32:50Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
Publish 1 can be downloaded here: [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip].
81
80
2009-06-23T19:46:23Z
Batlin
3
Protected "[[Mass M Decompiler]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
Publish 1 can be downloaded here: [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip].
87
81
2009-06-24T11:18:39Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
[http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
92
87
2009-06-29T21:51:24Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
'''Current:'''<br>
[http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br>
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
'''Archived:'''<br>
[http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
Origins of the Ultima Online Demo
0
18
84
2009-06-24T11:13:41Z
Batlin
3
moved [[Origins of the Ultima Online Demo]] to [[Dating the Ultima Online Demo]]
wikitext
text/x-wiki
#REDIRECT [[Dating the Ultima Online Demo]]
UoDmClnt
0
19
98
2009-07-13T09:24:06Z
Batlin
3
Created page with ''''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100...'
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[UoDemo+]]. The best shot to make this work was to patch the demo to act a real client.
To make this work download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You also have to creata a file UoDmClnt.cfg in your UO game directory (same directory where login.cfg and uo.cfg are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 2 ==
The Sleep patch was modified. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
99
98
2009-07-13T09:24:33Z
Batlin
3
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[UoDemo+]]. The best shot to make this work was to patch the demo to act as a real client.
To make this work download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You also have to creata a file UoDmClnt.cfg in your UO game directory (same directory where login.cfg and uo.cfg are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 2 ==
The Sleep patch was modified. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
100
99
2009-07-13T11:38:45Z
Batlin
3
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client.
Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 2 ==
The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
UoDmClnt
0
19
101
100
2009-07-13T11:39:05Z
Batlin
3
Protected "[[UoDmClnt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client.
Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 2 ==
The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
131
101
2009-12-23T21:50:47Z
Batlin
3
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client.
Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 3 ==
You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)]
== Publish 2 ==
The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
135
131
2009-12-29T14:44:26Z
Batlin
3
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client.
Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 3 ==
You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)]
== Publish 2 ==
The timings of the Sleep patch were improved. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
140
135
2010-01-14T22:39:15Z
Batlin
3
wikitext
text/x-wiki
'''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work.
OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client.
Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found).
Give it these contents: '''DemoServer=<IP>,<PORT>'''
The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server.
== Publish 4 ==
The automatic logon process has been removed, you can now create type an account name (depends on server though!) and create new characters. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%204).rar Download UoDmClnt (Publish 4)]
== Publish 3 ==
You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)]
== Publish 2 ==
The timings of the Sleep patch were improved. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)]
== Publish 1 ==
Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)]
Uodemo+
0
15
102
96
2009-08-20T09:08:41Z
Batlin
3
/* Publish 11 */
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 11+: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: The divide by two was intended, see [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
103
102
2009-08-20T09:09:55Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 11+: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
104
103
2009-08-20T09:10:20Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
129
104
2009-12-23T21:47:51Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 12: REGKYENAME = <registry key name><br>
Publish 12: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 12 ==
The twelfth publish of the demo reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
130
129
2009-12-23T21:48:12Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 12: REGKEYNAME = <registry key name><br>
Publish 12: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 12 ==
The twelfth publish of the demo reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
136
130
2009-12-29T14:58:46Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
139
136
2010-01-14T12:36:03Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an Account ID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
141
139
2010-01-15T16:13:48Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
Uodemo.exe
0
10
105
73
2009-08-21T12:11:02Z
Batlin
3
wikitext
text/x-wiki
== General ==
This is the Win32 executable for the Ultima Online Gold Demo. It comes with the installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation.
The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know.
It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory.
== Multi-threading ==
The executable implements 3 threads.<br>
thread 1: the server code runs in the default thread (and spawns the 2 other threads)<br>
thread 2: the server-side UI thread, this one only controls the server start/exit window<br>
thread 3: the client-side thread, this thread runs the same code like we can find in the old OSI UO clients<br>
106
105
2009-08-21T12:28:04Z
Batlin
3
wikitext
text/x-wiki
== General ==
This is the Win32 executable for the Ultima Online Gold Demo. It comes with the installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation.
The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know.
It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory.
== Multi-threading ==
The executable implements 3 threads.<br>
thread 1: the server code runs in the default thread (and spawns the 2 other threads)<br>
thread 2: the server-side UI thread, this one only controls the server start/exit window<br>
thread 3: the client-side thread, this thread runs the same code like we can find in the old OSI UO clients<br>
== Multiple libraries ==
The demo contains enough proof to tell us that it has been built using different compiler settings, thus it's one final link of libraries each compiled at a different time and/or location. Some libraries use the EBP-stack frame technique whereas other functions access the stack through the ESP register directly. Also, different alignment fillers are found and some functions are not aligned at all.
== The server code ==
The server code is a very complex piece of software. What is currently known from reverse-engineering the uodemo server code has been placed here : [[Server Code]]
Server Code
0
20
107
2009-08-21T13:19:12Z
Batlin
3
Created page with '== The core versus The runtime engine. == The server side consist of atleast 3 big engines: 1) the communication engine (sending and receiving packets) 2) the time manager 3)...'
wikitext
text/x-wiki
== The core versus The runtime engine. ==
The server side consist of atleast 3 big engines:
1) the communication engine (sending and receiving packets)
2) the time manager
3) the runtime engine
== The communication engine ==
Inside the main loop of the server the sequence is always:
1) receive packets
2) send packets
3) handle packets
4) execute the time manager
After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop.
== The runtime engine ==
The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events.
== The event system ==
Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script.
Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code:
// EIP=004CE288
if(event_chance == 1000)
{
// add event to the execute list
}
else if(rand() & 0x3FF < event_chance)
{
// add event to the execute list
}
Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code!
108
107
2009-08-21T13:19:32Z
Batlin
3
Protected "[[Server Code]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
== The core versus The runtime engine. ==
The server side consist of atleast 3 big engines:
1) the communication engine (sending and receiving packets)
2) the time manager
3) the runtime engine
== The communication engine ==
Inside the main loop of the server the sequence is always:
1) receive packets
2) send packets
3) handle packets
4) execute the time manager
After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop.
== The runtime engine ==
The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events.
== The event system ==
Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script.
Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code:
// EIP=004CE288
if(event_chance == 1000)
{
// add event to the execute list
}
else if(rand() & 0x3FF < event_chance)
{
// add event to the execute list
}
Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code!
145
108
2010-01-21T12:06:21Z
Batlin
3
/* The runtime engine */
wikitext
text/x-wiki
== The core versus The runtime engine. ==
The server side consist of atleast 3 big engines:
1) the communication engine (sending and receiving packets)
2) the time manager
3) the runtime engine
== The communication engine ==
Inside the main loop of the server the sequence is always:
1) receive packets
2) send packets
3) handle packets
4) execute the time manager
After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop.
== The runtime engine ==
The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events.
A complete list of commands the scripts can use has been published here: [[Command List|Ultima Online Demo Command List]]
== The event system ==
Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script.
Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code:
// EIP=004CE288
if(event_chance == 1000)
{
// add event to the execute list
}
else if(rand() & 0x3FF < event_chance)
{
// add event to the execute list
}
Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code!
Uodemo.dat
0
9
109
68
2009-08-24T09:34:01Z
Batlin
3
wikitext
text/x-wiki
This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section.
The archive is divided in 2 area's:
header area (dynamic in size, the size is a multiple of 280 bytes)
data area (dynamic in size)
The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area.
The file is encrypted using the GOST block cipher.
Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes).
The same encryption/decryption key is used for the entire archive.
One header entry is 280 bytes in size.
struct datheader
{
char filename[260]; // 260 is MAX_PATH in Windows
int32 filepointer; // this pointer is relative from the beginning of the data area
int32 maximumsize; // if set, the file can grow until this size is reached
int32 isreadonly; // 0: writeable, <>0: read-only
int32 encryptedsize; // encrypted file size (not the actual file size)
int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive
};
The actual file size can be obtained by reading the last int32 in the file data after decryption.
This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32).
Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works.
There are programs out there to extract the files from this DAT file.
DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html]
Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file]
The DemoDat utility can nowhere be found on the internet, if you have this utility let us know.
While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so.
Main Page
0
1
110
97
2009-09-16T19:57:19Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
Click here to read more about the [[Dating the Ultima Online Demo]].
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UO Demo+.'''</big>
The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
<big>'''UO Demo Forum'''</big>
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== [[Special:AllPages]] ==
Dynamic0.mul
0
2
132
69
2009-12-26T11:17:52Z
Batlin
3
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
P=Player
E=Environment Var?
G=Guard
N=NPC/Creature
S=Shopkeeper
W=Wearable
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
C=Container
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
133
132
2009-12-26T11:47:12Z
Batlin
3
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
B=Buliiten Board
C=Container
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
E=Chunk Egg
G=Guard
N=NPC/Creature
P=Player
S=Shopkeeper
W=Wearable (Weapon,Armor)
Z=Item
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
134
133
2009-12-26T11:47:40Z
Batlin
3
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is it's index.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
B=Bulletin Board
C=Container
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
E=Chunk Egg
G=Guard
N=NPC/Creature
P=Player
S=Shopkeeper
W=Wearable (Weapon,Armor)
Z=Item
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
Mass M Decompiler
0
17
137
92
2010-01-02T14:28:50Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
'''Current:'''<br>
[http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br>
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
'''Archived:'''<br>
[http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
138
137
2010-01-03T18:21:50Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
'''Current:'''<br>
[http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br>
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
'''Archived:'''<br>
[http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
Command List
0
37
146
2010-01-21T12:10:49Z
Batlin
3
Created page with '== Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<...'
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer objtoint(object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer strtoi(string);<br>
integer strlen(string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object NULL(void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVritueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string objToStr(object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer getPulseNum(void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer isEditing(object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer getPlayAge(object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer abs(integer);<br>
integer isGoldAccount(object);<br>
147
146
2010-01-21T21:33:34Z
81.83.66.38
0
Fixed error reported by Faust
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer objtoint(object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer strtoi(string);<br>
integer strlen(string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object NULL(void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string objToStr(object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer getPulseNum(void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer isEditing(object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer getPlayAge(object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer abs(integer);<br>
integer isGoldAccount(object);<br>
148
147
2010-01-24T20:39:08Z
81.83.66.38
0
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer getPulseNum(void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer isEditing(object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer getPlayAge(object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
149
148
2010-01-24T20:40:11Z
Batlin
3
Protected "[[Command List]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer getPulseNum(void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer isEditing(object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer getPlayAge(object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
154
149
2010-01-24T20:46:30Z
Batlin
3
Changed protection level for "[[Command List]]": Counter-productive edit warring ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading]
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer getPulseNum(void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer isEditing(object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer getPlayAge(object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
163
154
2010-01-24T21:22:50Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer getAccountNum(object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
170
163
2010-01-24T22:02:07Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location getRelayLoc(object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
Objtoint
0
38
150
2010-01-24T20:43:30Z
Batlin
3
Created page with 'integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or...'
wikitext
text/x-wiki
integer '''objtoint'''(object ''AnyObject'');
This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not.
151
150
2010-01-24T20:43:49Z
Batlin
3
Protected "[[Objtoint]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''objtoint'''(object ''AnyObject'');
This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not.
Strtoi
0
39
152
2010-01-24T20:45:29Z
Batlin
3
Created page with 'integer '''strtoi'''(string ''AnyString''); Converts a string to a signed integer. This is implemented by using the ''atoi'' C function.'
wikitext
text/x-wiki
integer '''strtoi'''(string ''AnyString'');
Converts a string to a signed integer. This is implemented by using the ''atoi'' C function.
153
152
2010-01-24T20:45:52Z
Batlin
3
Protected "[[Strtoi]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''strtoi'''(string ''AnyString'');
Converts a string to a signed integer. This is implemented by using the ''atoi'' C function.
Strlen
0
40
155
2010-01-24T20:48:04Z
Batlin
3
Created page with 'integer '''strlen'''(string ''AnyString''); Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function.'
wikitext
text/x-wiki
integer '''strlen'''(string ''AnyString'');
Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function.
156
155
2010-01-24T20:48:10Z
Batlin
3
Protected "[[Strlen]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''strlen'''(string ''AnyString'');
Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function.
NULL
0
41
157
2010-01-24T21:00:48Z
Batlin
3
Created page with 'object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is diff...'
wikitext
text/x-wiki
object '''NULL'''(void);
This returns an object with a fixed serial of 0.
It is important to note that this is a function so you must use it with round brackets (). This is different from the C language!
Therefor the following 2 code examples are equal:
<code><pre>// Example 1
if(getWeapon(this) == NULL () ) // Notice the () after NULL !!!
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
<code><pre>
// Example 2
if(objtoint(getWeapon(this)) == 0)
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
158
157
2010-01-24T21:00:54Z
Batlin
3
Protected "[[NULL]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
object '''NULL'''(void);
This returns an object with a fixed serial of 0.
It is important to note that this is a function so you must use it with round brackets (). This is different from the C language!
Therefor the following 2 code examples are equal:
<code><pre>// Example 1
if(getWeapon(this) == NULL () ) // Notice the () after NULL !!!
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
<code><pre>
// Example 2
if(objtoint(getWeapon(this)) == 0)
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
Abs
0
42
159
2010-01-24T21:09:24Z
Batlin
3
Created page with 'integer '''abs'''(integer ''AnyInteger''); This returns the absolute value of an integer. Integers range from −2147483648 to +2147483647. Please note that abs(-2147483648) wil...'
wikitext
text/x-wiki
integer '''abs'''(integer ''AnyInteger'');
This returns the absolute value of an integer.
Integers range from −2147483648 to +2147483647.
Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type.
<code><pre>
if( abs(−2147483647) == 2147483647 )
{
systemMessage(this, "abs() test succeeded");
}
else
{
systemMessage(this, "abs() test failed");
}
</pre></code>
160
159
2010-01-24T21:09:39Z
Batlin
3
Protected "[[Abs]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading]
wikitext
text/x-wiki
integer '''abs'''(integer ''AnyInteger'');
This returns the absolute value of an integer.
Integers range from −2147483648 to +2147483647.
Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type.
<code><pre>
if( abs(−2147483647) == 2147483647 )
{
systemMessage(this, "abs() test succeeded");
}
else
{
systemMessage(this, "abs() test failed");
}
</pre></code>
ObjToStr
0
43
161
2010-01-24T21:13:34Z
Batlin
3
Created page with 'string '''objToStr'''(object AnyObject''Italic text''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an un...'
wikitext
text/x-wiki
string '''objToStr'''(object AnyObject''Italic text'');
This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not.
162
161
2010-01-24T21:13:41Z
Batlin
3
Protected "[[ObjToStr]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
string '''objToStr'''(object AnyObject''Italic text'');
This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not.
GetPulseNum
0
44
164
2010-01-24T21:25:08Z
Batlin
3
Created page with 'integer '''getPulseNum'''(void); The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer th...'
wikitext
text/x-wiki
integer '''getPulseNum'''(void);
The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts.
165
164
2010-01-24T21:25:20Z
Batlin
3
Protected "[[GetPulseNum]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getPulseNum'''(void);
The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts.
IsEditing
0
45
166
2010-01-24T21:28:27Z
Batlin
3
Created page with 'integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwis...'
wikitext
text/x-wiki
integer '''isEditing'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04.
167
166
2010-01-24T21:28:44Z
Batlin
3
Protected "[[IsEditing]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isEditing'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04.
GetPlayAge
0
46
168
2010-01-24T21:45:03Z
Batlin
3
Created page with 'integer '''getPlayAge'''(object ''PlayerObject''); This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes.'
wikitext
text/x-wiki
integer '''getPlayAge'''(object ''PlayerObject'');
This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes.
169
168
2010-01-24T21:45:12Z
Batlin
3
Protected "[[GetPlayAge]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getPlayAge'''(object ''PlayerObject'');
This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes.
GetAccountNum
0
47
171
2010-01-24T22:08:43Z
Batlin
3
Created page with 'integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the functi...'
wikitext
text/x-wiki
integer '''getAccountNum'''(object PlayerObject);
getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433.
For "UoDemo+, Publish 14 and upwards" Server Operators you can use the following pseudo-check to detect yourself (if you didn't override the account number that is):
<code><pre>
if( getAccountNum( player_to_check ) == 2130706433 )
{
systemMessage("I am the one running UoDemo+, Publish 14.");
}
</pre></code>
GetAccountNum
0
47
172
171
2010-01-24T22:08:53Z
Batlin
3
Protected "[[GetAccountNum]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getAccountNum'''(object PlayerObject);
getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433.
For "UoDemo+, Publish 14 and upwards" Server Operators you can use the following pseudo-check to detect yourself (if you didn't override the account number that is):
<code><pre>
if( getAccountNum( player_to_check ) == 2130706433 )
{
systemMessage("I am the one running UoDemo+, Publish 14.");
}
</pre></code>
173
172
2010-01-24T22:15:36Z
Batlin
3
wikitext
text/x-wiki
integer '''getAccountNum'''(object PlayerObject);
getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433.
"UoDemo+, Publish 14 and upwards" Server Operators can use the following check to detect themselves (if they didn't override the account number that is):
<code><pre>// Example Code
if( getAccountNum( player_to_check ) == 2130706433 )
{
systemMessage("I am the one running UoDemo+, Publish 14.");
}
</pre></code>
179
173
2010-01-25T10:21:16Z
Batlin
3
wikitext
text/x-wiki
integer '''getAccountNum'''(object PlayerObject);
getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the demo's Avatar account has a fixed account number of 2130706433.
"UoDemo+, Publish 14 and upwards" Server Operators can use the following check to detect themselves (if they didn't override the account number that is):
<code><pre>// Example Code
if( getAccountNum( player_to_check ) == 2130706433 )
{
systemMessage("I am the one running UoDemo+, Publish 14.");
}
</pre></code>
Return to the [[Command List]].
Command List
0
37
174
170
2010-01-24T22:23:56Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer hasScript(object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
191
174
2010-01-25T10:43:21Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer hasscript(object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
193
191
2010-01-25T10:49:28Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer isMobile(object);<br>
integer isPlayer(object);<br>
integer isSpellbook(object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer isNPC(object);<br>
integer isOwnedPet(object);<br>
integer isShopKeeper(object);<br>
integer isGuard(object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer isOnline(object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
194
193
2010-01-25T11:29:18Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer isCounselor(object);<br>
integer isGameMaster(object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
211
194
2010-01-25T12:17:14Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
215
211
2010-01-25T18:06:02Z
Batlin
3
wikitext
text/x-wiki
This Command List it not sorted or grouped in any special way other then the order they appear in the executable.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those reads better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer isInMap(location);<br>
integer isInWorld(location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
216
215
2010-01-25T20:53:20Z
Batlin
3
wikitext
text/x-wiki
This Command List it not sorted or grouped in any special way other then the order they appear in the executable.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer getX(location);<br>
integer getY(location);<br>
integer getZ(location);<br>
void setX(location &, integer);<br>
void setY(location &, integer);<br>
void setZ(location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
GetRelayLoc
0
48
175
2010-01-24T23:20:15Z
Batlin
3
Created page with 'location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be...'
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]]
176
175
2010-01-24T23:20:22Z
Batlin
3
Protected "[[GetRelayLoc]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]]
188
176
2010-01-25T10:27:11Z
Batlin
3
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]]
Return to the [[Command List]].
189
188
2010-01-25T10:27:47Z
Batlin
3
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[Server.txt]]
Return to the [[Command List]].
Scripts
0
12
177
79
2010-01-25T10:19:51Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
A decompiler can be found here : [[Mass M Decompiler]].<br>
A list with commands that scripts can use can be found here : [[Command List]]
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
Abs
0
42
178
160
2010-01-25T10:20:37Z
Batlin
3
wikitext
text/x-wiki
integer '''abs'''(integer ''AnyInteger'');
This returns the absolute value of an integer.
Integers range from −2147483648 to +2147483647.
Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type.
<code><pre>
if( abs(−2147483647) == 2147483647 )
{
systemMessage(this, "abs() test succeeded");
}
else
{
systemMessage(this, "abs() test failed");
}
</pre></code>
Return to the [[Command List]].
GetPlayAge
0
46
180
169
2010-01-25T10:21:36Z
Batlin
3
wikitext
text/x-wiki
integer '''getPlayAge'''(object ''PlayerObject'');
This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes.
Return to the [[Command List]].
IsEditing
0
45
181
167
2010-01-25T10:23:44Z
Batlin
3
wikitext
text/x-wiki
integer '''isEditing'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04.
Return to the [[Command List]].
210
181
2010-01-25T11:43:49Z
Batlin
3
wikitext
text/x-wiki
integer '''isEditing'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04.
Internal Info: isEditing == Player->pflags & 0x02
Return to the [[Command List]].
GetPulseNum
0
44
182
165
2010-01-25T10:25:31Z
Batlin
3
wikitext
text/x-wiki
integer '''getPulseNum'''(void);
The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts.
Return to the [[Command List]].
Strtoi
0
39
183
153
2010-01-25T10:25:42Z
Batlin
3
wikitext
text/x-wiki
integer '''strtoi'''(string ''AnyString'');
Converts a string to a signed integer. This is implemented by using the ''atoi'' C function.
Return to the [[Command List]].
Objtoint
0
38
184
151
2010-01-25T10:26:06Z
Batlin
3
wikitext
text/x-wiki
integer '''objtoint'''(object ''AnyObject'');
This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not.
Return to the [[Command List]].
Strlen
0
40
185
156
2010-01-25T10:26:18Z
Batlin
3
wikitext
text/x-wiki
integer '''strlen'''(string ''AnyString'');
Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function.
Return to the [[Command List]].
NULL
0
41
186
158
2010-01-25T10:26:31Z
Batlin
3
wikitext
text/x-wiki
object '''NULL'''(void);
This returns an object with a fixed serial of 0.
It is important to note that this is a function so you must use it with round brackets (). This is different from the C language!
Therefor the following 2 code examples are equal:
<code><pre>// Example 1
if(getWeapon(this) == NULL () ) // Notice the () after NULL !!!
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
<code><pre>
// Example 2
if(objtoint(getWeapon(this)) == 0)
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
Return to the [[Command List]].
187
186
2010-01-25T10:26:46Z
Batlin
3
wikitext
text/x-wiki
object '''NULL'''(void);
This returns an object with a fixed serial of 0.
It is important to note that this is a function so you must use it with round brackets (). This is different from the C language!
Therefor the following 2 code examples are equal:
<code><pre>// Example 1
if( getWeapon(this) == NULL () ) // Notice the () after NULL !!!
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
<code><pre>
// Example 2
if( objtoint(getWeapon(this)) == 0 )
{
systemMessage(this, "I am unarmed!");
}
else
{
systemMessage(this, "I am armed!");
}
</pre></code>
Return to the [[Command List]].
ObjToStr
0
43
190
162
2010-01-25T10:28:38Z
Batlin
3
wikitext
text/x-wiki
string '''objToStr'''(object AnyObject''Italic text'');
This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not.
Return to the [[Command List]].
HasScript
0
49
192
2010-01-25T10:46:09Z
Batlin
3
Created page with 'integer '''hasscript'''(object ''AnyObject'', string ''ScriptName'');<br> integer '''hasScript'''(object ''AnyObject'', string ''ScriptName''); The hasscript/hasScript function ...'
wikitext
text/x-wiki
integer '''hasscript'''(object ''AnyObject'', string ''ScriptName'');<br>
integer '''hasScript'''(object ''AnyObject'', string ''ScriptName'');
The hasscript/hasScript function will return 1 if the specified object is valid and if it has the script with ''ScriptName'' attached. Otherwise 0 is returned.
Return to the [[Command List]].
IsMobile
0
50
195
2010-01-25T11:30:43Z
Batlin
3
Created page with 'integer '''isMobile'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Oth...'
wikitext
text/x-wiki
integer '''isMobile'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
196
195
2010-01-25T11:30:51Z
Batlin
3
Protected "[[IsMobile]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isMobile'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
205
196
2010-01-25T11:41:30Z
Batlin
3
wikitext
text/x-wiki
integer '''isMobile'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
IsPlayer
0
51
197
2010-01-25T11:32:19Z
Batlin
3
Created page with 'integer '''isPlayer'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned. Return to the [[Command List]]...'
wikitext
text/x-wiki
integer '''isPlayer'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned.
Return to the [[Command List]].
198
197
2010-01-25T11:32:25Z
Batlin
3
Protected "[[IsPlayer]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isPlayer'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned.
Return to the [[Command List]].
206
198
2010-01-25T11:41:45Z
Batlin
3
wikitext
text/x-wiki
integer '''isPlayer'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned.
Return to the [[Command List]].
IsNPC
0
52
199
2010-01-25T11:33:04Z
Batlin
3
Created page with 'integer '''isNPC'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned. ...'
wikitext
text/x-wiki
integer '''isNPC'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
200
199
2010-01-25T11:33:08Z
Batlin
3
Protected "[[IsNPC]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isNPC'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
207
200
2010-01-25T11:42:03Z
Batlin
3
wikitext
text/x-wiki
integer '''isNPC'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned.
Return to the [[Command List]].
IsShopKeeper
0
53
201
2010-01-25T11:33:45Z
Batlin
3
Created page with 'integer '''isShopKeeper'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned. Return to the [[Comman...'
wikitext
text/x-wiki
integer '''isShopKeeper'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned.
Return to the [[Command List]].
208
201
2010-01-25T11:42:14Z
Batlin
3
wikitext
text/x-wiki
integer '''isShopKeeper'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned.
Return to the [[Command List]].
IsGuard
0
54
202
2010-01-25T11:34:04Z
Batlin
3
Created page with 'integer '''isGuard'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned. Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''isGuard'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned.
Return to the [[Command List]].
203
202
2010-01-25T11:34:09Z
Batlin
3
Protected "[[IsGuard]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isGuard'''(object [[AnyObject]]);
This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned.
Return to the [[Command List]].
209
203
2010-01-25T11:42:25Z
Batlin
3
wikitext
text/x-wiki
integer '''isGuard'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned.
Return to the [[Command List]].
IsOnline
0
55
204
2010-01-25T11:41:07Z
Batlin
3
Created page with 'integer '''isOnline'''(object ''PlayerObject''); This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. ...'
wikitext
text/x-wiki
integer '''isOnline'''(object ''PlayerObject'');
This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. Because a player object is required, passing any other object like NPC's will result in a return value of 0.
Internal Info: isOnline == Player->pflags & 0x04
Return to the [[Command List]].
IsCounselor
0
56
212
2010-01-25T12:20:36Z
Batlin
3
Created page with 'integer '''isCounselor'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, othe...'
wikitext
text/x-wiki
integer '''isCounselor'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, otherwise 1 is returned. Counselor Mode can only be obtained by using a patch: [[uodemo+|UoDemo+ (Publish 12 or later)]].
Internal Info: isCounselor == Player->pflags & 0x8000
Return to the [[Command List]].
IsGameMaster
0
57
213
2010-01-25T12:22:13Z
Batlin
3
Created page with 'integer '''isGameMaster'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Game Master Mode, o...'
wikitext
text/x-wiki
integer '''isGameMaster'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Game Master Mode, otherwise 1 is returned. Code to become a Game Master is available in the demo core but so far no effort has been done to re-enable this code.
Internal Info: isGameMaster == Player->pflags & 0x1000
Return to the [[Command List]].
IsSpellbook
0
58
214
2010-01-25T12:26:26Z
Batlin
3
Created page with 'integer '''isSpellbook'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a spellbook. Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''isSpellbook'''(object ''AnyObject'');
This function will return 1 if the given object is valid and is a spellbook.
Return to the [[Command List]].
IsInWorld
0
59
217
2010-01-25T20:56:01Z
Batlin
3
Created page with 'integer '''isInWorld'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Othe...'
wikitext
text/x-wiki
integer '''isInWorld'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned.
Return to the [[Command List]].
220
217
2010-01-25T21:00:48Z
Batlin
3
wikitext
text/x-wiki
integer '''isInWorld'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned. The Z coordinate of LocationToCheck is ignored.
Return to the [[Command List]].
221
220
2010-01-25T21:00:53Z
Batlin
3
Protected "[[IsInWorld]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isInWorld'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned. The Z coordinate of LocationToCheck is ignored.
Return to the [[Command List]].
IsInMap
0
60
218
2010-01-25T20:59:56Z
Batlin
3
Created page with 'integer '''isInMap'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling....'
wikitext
text/x-wiki
integer '''isInMap'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the ''getRelayLoc'' script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored.
Return to the [[Command List]].
219
218
2010-01-25T21:00:08Z
Batlin
3
Protected "[[IsInMap]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isInMap'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the ''getRelayLoc'' script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored.
Return to the [[Command List]].
IsInMap
0
60
222
219
2010-01-25T21:02:51Z
Batlin
3
wikitext
text/x-wiki
integer '''isInMap'''(location ''LocationToCheck'');
This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area that the OSI/demo server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the [[getRelayLoc]] script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored.
Return to the [[Command List]].
Command List
0
37
223
216
2010-01-26T12:15:47Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Command List it not sorted or grouped in any special way other then the order they appear in the executable.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void makeDice(string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
241
223
2010-01-26T21:54:20Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Command List it not sorted or grouped in any special way other then the order they appear in the executable.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer isVirtueGuard(object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
247
241
2010-01-27T09:37:45Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Command List it not sorted or grouped in any special way other then the order they appear in the executable.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
263
247
2010-03-11T22:56:14Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer getTimeSecs(void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void getCurrentTimeStr(string);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
264
263
2010-03-13T20:23:33Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer getDistanceInTiles(location, location);<br>
string getDistance(location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
268
264
2010-04-14T22:21:40Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer isValid(object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
275
268
2010-06-14T21:01:20Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer eatObject(object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
278
275
2010-06-25T09:52:26Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer getCompileFlag(integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
GetX
0
61
224
2010-01-26T12:19:11Z
Batlin
3
Created page with 'integer '''getX'''(location ''LocationObject''); Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...'
wikitext
text/x-wiki
integer '''getX'''(location ''LocationObject'');
Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
225
224
2010-01-26T12:19:22Z
Batlin
3
Protected "[[GetX]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getX'''(location ''LocationObject'');
Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
GetY
0
62
226
2010-01-26T12:19:35Z
Batlin
3
Created page with 'integer '''getY'''(location ''LocationObject''); Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...'
wikitext
text/x-wiki
integer '''getY'''(location ''LocationObject'');
Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
227
226
2010-01-26T12:19:42Z
Batlin
3
Protected "[[GetY]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getY'''(location ''LocationObject'');
Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
GetZ
0
63
228
2010-01-26T12:19:55Z
Batlin
3
Created page with 'integer '''getZ'''(location ''LocationObject''); Use this function to retreive the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...'
wikitext
text/x-wiki
integer '''getZ'''(location ''LocationObject'');
Use this function to retreive the Z coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
SetX
0
64
229
2010-01-26T12:20:29Z
Batlin
3
Created page with 'integer '''setX'''(location ''LocationObject''); Use this function to change the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''setX'''(location ''LocationObject'');
Use this function to change the X coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
230
229
2010-01-26T12:20:34Z
Batlin
3
Protected "[[SetX]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''setX'''(location ''LocationObject'');
Use this function to change the X coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
235
230
2010-01-26T12:25:02Z
Batlin
3
wikitext
text/x-wiki
integer '''setX'''(location ''LocationObject'', integer ''NewX'');
Use this function to change the X coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
SetY
0
65
231
2010-01-26T12:20:46Z
Batlin
3
Created page with 'integer '''setY'''(location ''LocationObject''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''setY'''(location ''LocationObject'');
Use this function to change the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
232
231
2010-01-26T12:20:54Z
Batlin
3
Protected "[[SetY]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''setY'''(location ''LocationObject'');
Use this function to change the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
236
232
2010-01-26T12:25:12Z
Batlin
3
wikitext
text/x-wiki
integer '''setY'''(location ''LocationObject'', integer ''NewX'');
Use this function to change the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
238
236
2010-01-26T12:25:36Z
Batlin
3
wikitext
text/x-wiki
integer '''setY'''(location ''LocationObject'', integer ''NewY'');
Use this function to change the Y coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
SetZ
0
66
233
2010-01-26T12:21:06Z
Batlin
3
Created page with 'integer '''setZ'''(location ''LocationObject''); Use this function to change the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''setZ'''(location ''LocationObject'');
Use this function to change the Z coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
234
233
2010-01-26T12:21:11Z
Batlin
3
Protected "[[SetZ]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''setZ'''(location ''LocationObject'');
Use this function to change the Z coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
237
234
2010-01-26T12:25:25Z
Batlin
3
wikitext
text/x-wiki
integer '''setZ'''(location ''LocationObject'', integer ''NewZ'');
Use this function to change the Z coordinate of a location object (which consists of X, Y, Z).
Return to the [[Command List]].
GetRelayLoc
0
48
239
189
2010-01-26T19:30:09Z
Batlin
3
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc function returns a location variable with the X and Y found in .rundir\[[SERVERNAME|%SERVERNAME%]]\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[Server.txt]]
Return to the [[Command List]].
240
239
2010-01-26T19:30:32Z
Batlin
3
wikitext
text/x-wiki
location '''getRelayLoc'''(object ''UnusedObject'');
The getRelayLoc function returns a location variable with the X and Y found in .rundir\[[SERVERNAME|%SERVERNAME%]]\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[server.txt]]
Return to the [[Command List]].
MakeDice
0
67
242
2010-01-26T22:11:45Z
Batlin
3
Created page with 'void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice functio...'
wikitext
text/x-wiki
void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum'');
The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string.
Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero.
Examples:<br>
<code><pre>
string test = "Empty String";
makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5);
->
"My Test Dice: 5d8!-5"
</pre></code>
<code><pre>
string test;
makeDice(test, "My Test Dice: ", 5, 0, "", 5);
->
"My Test Dice: 5"
</pre></code>
<code><pre>
string test = "";
makeDice(test, "My Test Dice: ", 5, 0, "+", 5);
->
"My Test Dice: 5+5"
</pre></code>
243
242
2010-01-26T22:12:40Z
Batlin
3
wikitext
text/x-wiki
void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum'');
The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string.
Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero.
Examples:<br>
<code><pre>
string test = "Empty String";
makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5);
->
"My Test Dice: 5d8!-5"
</pre></code>
<code><pre>
string test;
makeDice(test, "My Test Dice: ", 5, 0, "", 5);
->
"My Test Dice: 5"
</pre></code>
<code><pre>
string test = "";
makeDice(test, "My Test Dice: ", 5, 0, "+", 5);
->
"My Test Dice: 5+5"
</pre></code>
Return to the [[Command List]].
244
243
2010-01-26T22:12:45Z
Batlin
3
Protected "[[MakeDice]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum'');
The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string.
Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero.
Examples:<br>
<code><pre>
string test = "Empty String";
makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5);
->
"My Test Dice: 5d8!-5"
</pre></code>
<code><pre>
string test;
makeDice(test, "My Test Dice: ", 5, 0, "", 5);
->
"My Test Dice: 5"
</pre></code>
<code><pre>
string test = "";
makeDice(test, "My Test Dice: ", 5, 0, "+", 5);
->
"My Test Dice: 5+5"
</pre></code>
Return to the [[Command List]].
245
244
2010-01-26T22:17:57Z
Batlin
3
wikitext
text/x-wiki
void '''makeDice'''(string &''ResultString'', string ''InitialString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum'');
The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string.
Notes:<br>''Sides'' is only appended if it's non-zero and when appended it's always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero.
Examples:<br>
<code><pre>
string test = "Empty String";
makeDice(test, "Test Dice A: ", 5, 8, "!", 0 - 5);
->
"Test Dice A: 5d8!-5"
</pre></code>
<code><pre>
string test;
makeDice(test, "Test Dice B: ", 5, 0, "", 9999);
->
"Test Dice B: 5"
</pre></code>
<code><pre>
string test = "";
makeDice(test, "", 5, 0, "+", 5);
->
"5+5"
</pre></code>
Return to the [[Command List]].
246
245
2010-01-26T22:19:52Z
Batlin
3
wikitext
text/x-wiki
void '''makeDice'''(string &''ResultString'', string ''InitialString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix'', integer ''Minimum'');
The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string.
Notes:<br>''Sides'' is only appended if it's non-zero and when appended it's always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero.
Examples:<br>
<code><pre>
string test = "Empty String";
makeDice(test, "Test Dice A: ", 5, 8, "!", 0 - 5);
->
"Test Dice A: 5d8!-5"
</pre></code>
<code><pre>
string test;
makeDice(test, "Test Dice B: ", 5, 0, "", 9999);
->
"Test Dice B: 5"
</pre></code>
<code><pre>
string test = "";
makeDice(test, "", 5, 0, "+", 5);
->
"5+5"
</pre></code>
Return to the [[Command List]].
IsVirtueGuard
0
68
248
2010-01-27T09:44:53Z
Batlin
3
Created page with 'integer '''isVirtueGuard'''(object ''MobileObject''); This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is ...'
wikitext
text/x-wiki
integer '''isVirtueGuard'''(object ''MobileObject'');
This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is returned.
The following 2 code samples are equal:
<code><pre>
if(isVirtueGuard(this))
{
systemMessage(this, "I am a virtue guard.");
}
else
{
systemMessage(this, "I am not a virtue guard.");
}
</pre></code>
<code><pre>
if(isOrderGuard(this) || isChaosGuard(this))
{
systemMessage(this, "I am a virtue guard.");
}
else
{
systemMessage(this, "I am not a virtue guard.");
}
</pre></code>
Return to the [[Command List]].
249
248
2010-01-27T09:45:18Z
Batlin
3
Protected "[[IsVirtueGuard]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''isVirtueGuard'''(object ''MobileObject'');
This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is returned.
The following 2 code samples are equal:
<code><pre>
if(isVirtueGuard(this))
{
systemMessage(this, "I am a virtue guard.");
}
else
{
systemMessage(this, "I am not a virtue guard.");
}
</pre></code>
<code><pre>
if(isOrderGuard(this) || isChaosGuard(this))
{
systemMessage(this, "I am a virtue guard.");
}
else
{
systemMessage(this, "I am not a virtue guard.");
}
</pre></code>
Return to the [[Command List]].
Uodemo+
0
15
250
141
2010-02-15T12:21:10Z
Batlin
3
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL = <filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
IsCounselor
0
56
252
212
2010-03-03T08:20:12Z
74.63.201.156
0
8000
wikitext
text/x-wiki
vfawWL <a href="http://otadrikjgobk.com/">otadrikjgobk</a>, [url=http://zwqyuwjdvpfn.com/]zwqyuwjdvpfn[/url], [link=http://hsygcralvect.com/]hsygcralvect[/link], http://nlhpsxzjzxls.com/
261
252
2010-03-03T18:06:28Z
Derrick
2
Undo revision 252 by [[Special:Contributions/74.63.201.156|74.63.201.156]] ([[User talk:74.63.201.156|Talk]])
wikitext
text/x-wiki
integer '''isCounselor'''(object ''PlayerObject'');
This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, otherwise 1 is returned. Counselor Mode can only be obtained by using a patch: [[uodemo+|UoDemo+ (Publish 12 or later)]].
Internal Info: isCounselor == Player->pflags & 0x8000
Return to the [[Command List]].
IsOnline
0
55
255
204
2010-03-03T09:04:54Z
38.107.149.14
0
4
wikitext
text/x-wiki
DpKN8R <a href="http://ewvpearlmiff.com/">ewvpearlmiff</a>, [url=http://uavjuxzptylk.com/]uavjuxzptylk[/url], [link=http://lbqsvtpaocik.com/]lbqsvtpaocik[/link], http://urbxxsxxuqvi.com/
262
255
2010-03-03T18:06:42Z
Derrick
2
Reverted edits by [[Special:Contributions/38.107.149.14|38.107.149.14]] ([[User talk:38.107.149.14|Talk]]) to last version by [[User:Batlin|Batlin]]
wikitext
text/x-wiki
integer '''isOnline'''(object ''PlayerObject'');
This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. Because a player object is required, passing any other object like NPC's will result in a return value of 0.
Internal Info: isOnline == Player->pflags & 0x04
Return to the [[Command List]].
GetTimeSecs
0
69
265
2010-03-13T20:27:49Z
Batlin
3
Created page with 'integer '''getTimeSecs'''(void); This function will the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia fu…'
wikitext
text/x-wiki
integer '''getTimeSecs'''(void);
This function will the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the system time is the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks.
Return to the [[Command List]].
267
265
2010-03-14T20:49:04Z
Batlin
3
wikitext
text/x-wiki
integer '''getTimeSecs'''(void);
This function will return the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time is the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks.
Return to the [[Command List]].
GetCurrentTimeStr
0
70
266
2010-03-13T20:33:45Z
Batlin
3
Created page with 'void '''getCurrentTimeStr'''(string &''ResultString''); This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function. …'
wikitext
text/x-wiki
void '''getCurrentTimeStr'''(string &''ResultString'');
This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function.
However! The demo server code is bugged here, and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in UoDemo+ Publish 16 and later.
Return to the [[Command List]].
GetDistanceInTiles
0
71
269
2010-04-14T22:33:19Z
Batlin
3
Created page with 'integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will return 9999 if A.x or B.x is greater or equal to 5120. Otherwise the absolute value of t…'
wikitext
text/x-wiki
integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br>
This function will return 9999 if A.x or B.x is greater or equal to 5120. Otherwise the absolute value of the difference between A and B is made for both x and y and the highest value of the two is returned. The Z value is ignored when calculating the difference.
Pseudo-code (using signed integers):<pre>
integer DistanceInTiles(location A, location B)
{
if(A.x >= 5120 || B.x >= 5120)
return 9999;
Xdiff = A.x - B.x;
ydiff = A.y - B.y;
if(xdiff < 0)
xdiff = -xdiff;
if(ydiff < 0)
ydiff = -ydiff;
if(A.x < 5120) // OSI-bug (?), A.x is always lower than 5120
{
if(5120 - xdiff > xdiff)
xdiff = 5120 - xdiff;
if(4096 - ydiff > ydiff)
ydiff = 4096 - ydiff;
}
if(xdiff > ydiff)
retval = xdiff;
else
retval = ydiff;
return retval;
}</pre>
Return to the [[Command List]].
270
269
2010-04-14T22:40:36Z
Batlin
3
decompilation fix
wikitext
text/x-wiki
integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br>
This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference.
Pseudo-code (using signed integers):<pre>
integer DistanceInTiles(location A, location B)
{
// NOTE TO SELF: I should clear this up when I'm not so sleepy
tmpx = A.x >= 5120 ? 1 : 0;
tmpy = B.x >= 5120 ? 1 : 0;
if(tmpx ^ tmpy != 0)
return 9999;
Xdiff = A.x - B.x;
ydiff = A.y - B.y;
if(xdiff < 0)
xdiff = -xdiff;
if(ydiff < 0)
ydiff = -ydiff;
if(A.x < 5120)
{
if(5120 - xdiff > xdiff)
xdiff = 5120 - xdiff;
if(4096 - ydiff > ydiff)
ydiff = 4096 - ydiff;
}
if(xdiff > ydiff)
retval = xdiff;
else
retval = ydiff;
return retval;
}</pre>
Return to the [[Command List]].
271
270
2010-04-14T22:41:23Z
Batlin
3
wikitext
text/x-wiki
integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br>
This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference.
Pseudo-code (using signed integers):<pre>
integer getDistanceInTiles(location A, location B)
{
// NOTE TO SELF: I should clear this up when I'm not so sleepy
tmpx = A.x >= 5120 ? 1 : 0;
tmpy = B.x >= 5120 ? 1 : 0;
if(tmpx ^ tmpy != 0)
return 9999;
Xdiff = A.x - B.x;
ydiff = A.y - B.y;
if(xdiff < 0)
xdiff = -xdiff;
if(ydiff < 0)
ydiff = -ydiff;
if(A.x < 5120)
{
if(5120 - xdiff > xdiff)
xdiff = 5120 - xdiff;
if(4096 - ydiff > ydiff)
ydiff = 4096 - ydiff;
}
if(xdiff > ydiff)
retval = xdiff;
else
retval = ydiff;
return retval;
}</pre>
Return to the [[Command List]].
272
271
2010-04-14T22:43:39Z
Batlin
3
wikitext
text/x-wiki
integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br>
This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference.
Pseudo-code (using signed integers):<pre>
integer getDistanceInTiles(location A, location B)
{
// NOTE TO SELF: I should explain this better when I'm not so sleepy
Ax_is_invalid = A.x >= 5120 ? 1 : 0;
Bx_is_invalid = B.x >= 5120 ? 1 : 0;
if(Ax_is_invalid ^ Bx_is_invalid != 0) // Indeed, XOR is used here
return 9999;
Xdiff = A.x - B.x;
ydiff = A.y - B.y;
if(xdiff < 0)
xdiff = -xdiff;
if(ydiff < 0)
ydiff = -ydiff;
if(A.x < 5120)
{
if(5120 - xdiff > xdiff)
xdiff = 5120 - xdiff;
if(4096 - ydiff > ydiff)
ydiff = 4096 - ydiff;
}
if(xdiff > ydiff)
retval = xdiff;
else
retval = ydiff;
return retval;
}</pre>
Return to the [[Command List]].
273
272
2010-04-14T22:44:02Z
Batlin
3
Protected "[[GetDistanceInTiles]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br>
This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference.
Pseudo-code (using signed integers):<pre>
integer getDistanceInTiles(location A, location B)
{
// NOTE TO SELF: I should explain this better when I'm not so sleepy
Ax_is_invalid = A.x >= 5120 ? 1 : 0;
Bx_is_invalid = B.x >= 5120 ? 1 : 0;
if(Ax_is_invalid ^ Bx_is_invalid != 0) // Indeed, XOR is used here
return 9999;
Xdiff = A.x - B.x;
ydiff = A.y - B.y;
if(xdiff < 0)
xdiff = -xdiff;
if(ydiff < 0)
ydiff = -ydiff;
if(A.x < 5120)
{
if(5120 - xdiff > xdiff)
xdiff = 5120 - xdiff;
if(4096 - ydiff > ydiff)
ydiff = 4096 - ydiff;
}
if(xdiff > ydiff)
retval = xdiff;
else
retval = ydiff;
return retval;
}</pre>
Return to the [[Command List]].
Templatestable.dat
0
72
274
2010-06-14T19:48:16Z
Stuck
5
Created page with '= Templates = placeholder'
wikitext
text/x-wiki
= Templates =
placeholder
IsValid
0
73
276
2010-06-14T21:02:21Z
Batlin
3
Created page with 'integer '''isValid'''(object ''AnyObject''); This function will return 1 if the specified object exists, otherwise the function will return 0. Return to the [[Command List]].'
wikitext
text/x-wiki
integer '''isValid'''(object ''AnyObject'');
This function will return 1 if the specified object exists, otherwise the function will return 0.
Return to the [[Command List]].
Objtoint
0
38
277
184
2010-06-14T21:03:34Z
Batlin
3
wikitext
text/x-wiki
integer '''objtoint'''(object ''AnyObject'');
This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not. Use the [[isValid]] function to check the validness of an object.
Return to the [[Command List]].
EatObject
0
74
279
2010-06-25T09:57:41Z
Batlin
3
Created page with 'integer '''eatObject'''(object ''Eater'', object ''Eaten''); This function is not implemented and will therefor do nothing and always return 0. However, from the disassembly it'…'
wikitext
text/x-wiki
integer '''eatObject'''(object ''Eater'', object ''Eaten'');
This function is not implemented and will therefor do nothing and always return 0.
However, from the disassembly it's clear that this function was ment only to be used by NPC's.
Return to the [[Command List]].
GetTimeSecs
0
69
280
267
2010-06-25T22:58:40Z
Batlin
3
wikitext
text/x-wiki
integer '''getTimeSecs'''(void);
This is a bug-fixed function as of UoDemo+ Publish 16.
This function will return the system time in seconds. This is implemented by using the ''time'' C Library function, therefor the time is the number of seconds elapsed since January 1, 1970.
When OSI ported their server code to Windows and merged it with the client code, they made a mistake and replaced the calls to ''time'' with calls to ''timeGetTime''. Thus in the original demo and UoDemo+ up to Publish 15, this function will return the current system time (server time) in milliseconds. This was implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time was the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks.
Return to the [[Command List]].
Mass M Decompiler
0
17
281
138
2010-08-21T21:14:58Z
Batlin
3
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
'''Current:'''<br>
[http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%203).zip Download Mass M Decompiler (Publish 3)].<br>
NOTE: This version uses the UO Demo SDK and also fixed a bug related with the decompilation of the targetloc event, this bug was reported by Garret of [http://www.ruosi.org ruosi.org].
'''Archived:'''<br>
[http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br>
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
[http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
Command List
0
37
282
278
2010-09-08T09:25:14Z
Batlin
3
/* All Public Functions: */
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer isMurderer(object);<br>
integer getMurderCount(object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
284
282
2010-09-08T09:56:11Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer getSex(object);<br>
integer sameSex(object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string getHeShe(object);<br>
string getHimHer(object);<br>
string getHisHer(object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
289
284
2010-09-13T10:44:10Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void callback(object, integer, integer);<br>
void callBack(object, integer, integer);<br>
void shortcallback(object, integer, integer);<br>
void shortCallback(object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
295
289
2010-09-22T22:32:01Z
Derrick
2
Links to callback functions
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void removePrefix(string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
322
295
2011-06-02T23:55:33Z
Derrick
2
linked removePrefix
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer getDecayMax(object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer getDefaultDieDecay(void);<br>
integer getDecayInternval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void setDecayTest(integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
328
322
2011-08-11T20:04:12Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer isOwnedPet(object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
GetCompileFlag
0
75
283
2010-09-08T09:40:00Z
Batlin
3
Created page with 'integer '''getCompileFlag'''(string ''Flag''); This function returns information about how the core was compiled. If an invalid flag is given the function will return 0. Flag 1…'
wikitext
text/x-wiki
integer '''getCompileFlag'''(string ''Flag'');
This function returns information about how the core was compiled. If an invalid flag is given the function will return 0.
Flag 1: returns 1 and indicates "The new reputation system"<br>
Flag 2: returns 0 and indicates "No requirement check to buy ship/house deeds"<br>
Flag 3: returns the publish number of UoDemo+ as of Publish 16 (older releases will return 0)
NOTE: Flag 2 is only checked by these 3 scripts : housedeed, multistuff, shipdeed.
Return to the [[Command List]].
IsMurderer
0
76
285
2010-09-08T10:00:02Z
Batlin
3
Created page with 'string '''isMurderer'''(object ''AnyObject''); This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal tha…'
wikitext
text/x-wiki
string '''isMurderer'''(object ''AnyObject'');
This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal than 5, otherwise 0 is returned. No attempt is made to verify that the specified object is a mobile.
Return to the [[Command List]].
287
285
2010-09-08T10:03:20Z
Batlin
3
wikitext
text/x-wiki
integer '''isMurderer'''(object ''AnyObject'');
This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal than 5, otherwise 0 is returned. No attempt is made to verify that the specified object is a mobile.
Return to the [[Command List]].
GetMurderCount
0
77
286
2010-09-08T10:02:52Z
Batlin
3
Created page with 'integer '''getMurderCount'''(object ''AnyObject''); This function will return the value of the attached ''murderCount'' object variable, if ''murderCount'' is not attached then …'
wikitext
text/x-wiki
integer '''getMurderCount'''(object ''AnyObject'');
This function will return the value of the attached ''murderCount'' object variable, if ''murderCount'' is not attached then 0 is returned. No attempt is made to verify that the specified object is a mobile.
Return to the [[Command List]].
ObjToStr
0
43
288
190
2010-09-08T10:04:09Z
Batlin
3
wikitext
text/x-wiki
string '''objToStr'''(object ''AnyObject'');
This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not.
Return to the [[Command List]].
GetSex
0
78
290
2010-09-13T10:46:18Z
Batlin
3
Created page with 'integer '''getSex'''(object ''Mobile'');<br> The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2. 0: the given object is not a valid mo…'
wikitext
text/x-wiki
integer '''getSex'''(object ''Mobile'');<br>
The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2.
0: the given object is not a valid mobile or is a valid mobile and has a male body type (0x190)<br>
1: the given object is a valid mobile and has a female body type (0x191)<br>
2: the given object is a valid mobile but does not have a male nor a female body type<br>
Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid!
Return to the [[Command List]].
SameSex
0
79
291
2010-09-13T11:11:22Z
Batlin
3
Created page with 'integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br> The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 …'
wikitext
text/x-wiki
integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br>
The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 is returned.
Because a 'sex value' of 0 is used for both male mobiles and invalid mobiles, you should use the [[isMobile]] function to validate the objects first to avoid unwanted results!
Return to the [[Command List]].
GetHeShe
0
80
292
2010-09-13T11:15:39Z
Batlin
3
Created page with 'integer '''getHeShe'''(object ''Mobile'');<br> The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]]. …'
wikitext
text/x-wiki
integer '''getHeShe'''(object ''Mobile'');<br>
The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]].
sex=0: "he" is returned<br>
sex=1: "she" is returned<br>
sex=2: "it" is returned<br>
If an invalid object/mobile is provided than the string "he" will be returned, see [[getSex]] for more details.
Return to the [[Command List]].
GetHimHer
0
81
293
2010-09-13T11:16:34Z
Batlin
3
Created page with 'integer '''getHimHer'''(object ''Mobile'');<br> The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]…'
wikitext
text/x-wiki
integer '''getHimHer'''(object ''Mobile'');<br>
The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]].
sex=0: "him" is returned<br>
sex=1: "her" is returned<br>
sex=2: "it" is returned<br>
If an invalid object/mobile is provided than the string "him" will be returned, see [[getSex]] for more details.
Return to the [[Command List]].
GetHisHer
0
82
294
2010-09-13T11:18:05Z
Batlin
3
Created page with 'integer '''getHisHer'''(object ''Mobile'');<br> The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex…'
wikitext
text/x-wiki
integer '''getHisHer'''(object ''Mobile'');<br>
The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex]].
sex=0: "his" is returned<br>
sex=1: "her" is returned<br>
sex=2: "its" is returned<br>
If an invalid object/mobile is provided than the string "his" will be returned, see [[getSex]] for more details.
Return to the [[Command List]].
CallBack
0
83
296
2010-09-22T22:34:22Z
Derrick
2
Created page with 'callback(object entity, int seconds, int callbackid) Example: callback(this, 0x04B0, 0x40);'
wikitext
text/x-wiki
callback(object entity, int seconds, int callbackid)
Example: callback(this, 0x04B0, 0x40);
ShortCallback
0
84
297
2010-09-22T22:35:53Z
Derrick
2
Created page with 'shortCallback(object entity, int ticks, int callbackid) Example: shortCallback(this, 0x03, 0x32);'
wikitext
text/x-wiki
shortCallback(object entity, int ticks, int callbackid)
Example: shortCallback(this, 0x03, 0x32);
Templatestable.dat
0
72
298
274
2010-10-15T14:17:00Z
Derrick
2
moved [[Templatestable.dat]] to [[Templatestable]]: .dat is not an acceptable URL
wikitext
text/x-wiki
= Templates =
placeholder
300
298
2010-10-15T15:00:31Z
Derrick
2
moved [[Templatestable]] to [[Templatestable.dat]] over redirect: Fixed IIS config, .dat is now allowed
wikitext
text/x-wiki
= Templates =
placeholder
310
300
2010-10-15T22:28:22Z
Derrick
2
Draft File Description
wikitext
text/x-wiki
= Templates =
Much of the Content of UO is defined in this file.
Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles.
= Template Structure =
Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration.
The general format is as follows, with the individual elements, and value types defined later.
<pre>
<<ID>>
<type <ObjectType> <TypeSpecificID>>
[Optional Elements...]
<@@@ END @@@>
</pre>
= Template Elements =
One per line, internal whitespace ignored.
==Required Elements==
{| class="wikitable" border="1"
! Name !! Format !! Description
|-
|TemplateID || <<TemplateID>> || The ID of this template
|-
|Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID
|-
|End|| <@@@ END @@@> || Marks the end of the template
|}
==Optional Elements==
R: Repeatable
M: NORMAL or SHOPKEEPER
I: ITEM
Because the NONE type is used as a template overlay, it's assumed all elements are valid for none
{| class="wikitable" border="1"
! Name !! Format !! Description
!R!!M!!I
|-
|Region || <region <Value>> || Not fully understood
| || X || ?
|-
|RegionLimit || <regionlimit <Value>> || Not fully understood
| || X || ?
|-
|Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name
| || X ||
|-
|Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER)
| || X ||
|-
|Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?)
| || X || ?
|-
|Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue")
| || X || ?
|-
|Hue|| <hue <HueValue>> || The "solid hue" to apply to the object
| || X || ?
|-
|Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item
| ? || ? || X
|-
|ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object
| X || X ||
|-
|Script|| <script <String>> || An Script to attach to the Object
| X || X || ?
|-
|sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID
| || X ||
|-
|sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID
| || X ||
|-
|sfxDie|| <sfxdie <Value>> || Mobile Died sound ID
| || X ||
|-
|ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile
| X || X ||
|-
|Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL)
| || X ||
|-
|Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice)
| || X ||
|-
|Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice)
| || X ||
|-
|Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice)
| || X ||
|-
|Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice)
| || X ||
|-
|HitPoints|| |<hp <SingleValue|"STR">> || The HitPoints value of the Mobile, or use STR as base
| || X ||
|-
|Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base
| || X ||
|-
|Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base
| || X ||
|-
|NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits
| || X ||
|-
|NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature
| || X ||
|-
|Immunities|| <immunities <ImmunityValue>> || Immunity
| X || X || ?
|-
|Skill|| <sk <SkillValue> <Value>> || Set skill on mobile to value
| X || X ||
|-
|Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp]> || Add Object
| X || X || X
|-
|Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template
| X || X ||
|-
|Resource|| <resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration
| X || X || X
|}
=Value Definitions=
TODO
311
310
2010-10-15T23:05:06Z
Derrick
2
/* Optional Elements */
wikitext
text/x-wiki
= Templates =
Much of the Content of UO is defined in this file.
Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles.
= Template Structure =
Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration.
The general format is as follows, with the individual elements, and value types defined later.
<pre>
<<ID>>
<type <ObjectType> <TypeSpecificID>>
[Optional Elements...]
<@@@ END @@@>
</pre>
= Template Elements =
One per line, internal whitespace ignored.
==Required Elements==
{| class="wikitable" border="1"
! Name !! Format !! Description
|-
|TemplateID || <<TemplateID>> || The ID of this template
|-
|Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID
|-
|End|| <@@@ END @@@> || Marks the end of the template
|}
==Optional Elements==
R: Repeatable
M: NORMAL or SHOPKEEPER
I: ITEM
Because the NONE type is used as a template overlay, it's assumed all elements are valid for none
{| class="wikitable" border="1"
! Name !! Format !! Description
!R!!M!!I
|-
|Region || <region <Value>> || Not fully understood
| || X || ?
|-
|RegionLimit || <regionlimit <Value>> || Not fully understood
| || X || ?
|-
|Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name
| || X ||
|-
|Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER)
| || X ||
|-
|Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?)
| || X || ?
|-
|Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue")
| || X || ?
|-
|Hue|| <hue <HueValue>> || The "solid hue" to apply to the object
| || X || ?
|-
|Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item
| ? || ? || X
|-
|ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object
| X || X ||
|-
|Script|| <script <String>> || An Script to attach to the Object
| X || X || ?
|-
|sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID
| || X ||
|-
|sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID
| || X ||
|-
|sfxDie|| <sfxdie <Value>> || Mobile Died sound ID
| || X ||
|-
|ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile
| X || X ||
|-
|Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL)
| || X ||
|-
|Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice)
| || X ||
|-
|Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice)
| || X ||
|-
|Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice)
| || X ||
|-
|Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice)
| || X ||
|-
|HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base
| || X ||
|-
|Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base
| || X ||
|-
|Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base
| || X ||
|-
|NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits
| || X ||
|-
|NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature
| || X ||
|-
|Immunities|| <immunities <ImmunityValue>> || Immunity
| X || X || ?
|-
|Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value
| X || X ||
|-
|Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp]> || Add Object
| X || X || X
|-
|Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template
| X || X ||
|-
|Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration
| X || X || X
|}
=Value Definitions=
TODO
312
311
2010-10-16T23:28:15Z
Derrick
2
/* Optional Elements */ Added a couple missing elements
wikitext
text/x-wiki
= Templates =
Much of the Content of UO is defined in this file.
Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles.
= Template Structure =
Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration.
The general format is as follows, with the individual elements, and value types defined later.
<pre>
<<ID>>
<type <ObjectType> <TypeSpecificID>>
[Optional Elements...]
<@@@ END @@@>
</pre>
= Template Elements =
One per line, internal whitespace ignored.
==Required Elements==
{| class="wikitable" border="1"
! Name !! Format !! Description
|-
|TemplateID || <<TemplateID>> || The ID of this template
|-
|Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID
|-
|End|| <@@@ END @@@> || Marks the end of the template
|}
==Optional Elements==
R: Repeatable
M: NORMAL or SHOPKEEPER
I: ITEM
Because the NONE type is used as a template overlay, it's assumed all elements are valid for none
{| class="wikitable" border="1"
! Name !! Format !! Description
!R!!M!!I
|-
|CreatesNPCs|| <createsnpcs <Bool>> || This item generates NPC's relative to it's position in <eq>
| || || X
|-
|Frequency || <frequency <SingleValue>> || Not fully understood
| || X || X
|-
|Region || <region <Value>> || Not fully understood
| || X || ?
|-
|RegionLimit || <regionlimit <Value>> || Not fully understood
| || X || ?
|-
|Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name
| || X ||
|-
|Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER)
| || X ||
|-
|Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?)
| || X || ?
|-
|Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue")
| || X || ?
|-
|Hue|| <hue <HueValue>> || The "solid hue" to apply to the object
| || X || ?
|-
|Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item
| ? || ? || X
|-
|ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object
| X || X ||
|-
|Script|| <script <String>> || An Script to attach to the Object
| X || X || ?
|-
|sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID
| || X ||
|-
|sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID
| || X ||
|-
|sfxDie|| <sfxdie <Value>> || Mobile Died sound ID
| || X ||
|-
|ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile
| X || X ||
|-
|Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL)
| || X ||
|-
|Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice)
| || X ||
|-
|Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice)
| || X ||
|-
|Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice)
| || X ||
|-
|Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice)
| || X ||
|-
|HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base
| || X ||
|-
|Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base
| || X ||
|-
|Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base
| || X ||
|-
|NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits
| || X ||
|-
|NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature
| || X ||
|-
|Immunities|| <immunities <ImmunityValue>> || Immunity
| X || X || ?
|-
|Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value
| X || X ||
|-
|Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp] [pet]> || Add Object
| X || X || X
|-
|Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template
| X || X ||
|-
|Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration
| X || X || X
|}
=Value Definitions=
TODO
313
312
2010-10-17T15:25:42Z
Derrick
2
/* Optional Elements */ added <req> element, I suspect this is a bugged enty,
wikitext
text/x-wiki
= Templates =
Much of the Content of UO is defined in this file.
Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles.
= Template Structure =
Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration.
The general format is as follows, with the individual elements, and value types defined later.
<pre>
<<ID>>
<type <ObjectType> <TypeSpecificID>>
[Optional Elements...]
<@@@ END @@@>
</pre>
= Template Elements =
One per line, internal whitespace ignored.
==Required Elements==
{| class="wikitable" border="1"
! Name !! Format !! Description
|-
|TemplateID || <<TemplateID>> || The ID of this template
|-
|Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID
|-
|End|| <@@@ END @@@> || Marks the end of the template
|}
==Optional Elements==
R: Repeatable
M: NORMAL or SHOPKEEPER
I: ITEM
Because the NONE type is used as a template overlay, it's assumed all elements are valid for none
{| class="wikitable" border="1"
! Name !! Format !! Description
!R!!M!!I
|-
|CreatesNPCs|| <createsnpcs <Bool>> || This item generates NPC's relative to it's position in <eq>
| || || X
|-
|Frequency || <frequency <SingleValue>> || Not fully understood
| || X || X
|-
|Region || <region <Value>> || Not fully understood
| || X || ?
|-
|RegionLimit || <regionlimit <Value>> || Not fully understood
| || X || ?
|-
|Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name
| || X ||
|-
|Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER)
| || X ||
|-
|Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?)
| || X || ?
|-
|Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue")
| || X || ?
|-
|Hue|| <hue <HueValue>> || The "solid hue" to apply to the object
| || X || ?
|-
|Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item
| ? || ? || X
|-
|ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object
| X || X ||
|-
|Script|| <script <String>> || An Script to attach to the Object
| X || X || ?
|-
|sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID
| || X ||
|-
|sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID
| || X ||
|-
|sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID
| || X ||
|-
|sfxDie|| <sfxdie <Value>> || Mobile Died sound ID
| || X ||
|-
|ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile
| X || X ||
|-
|Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL)
| || X ||
|-
|Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice)
| || X ||
|-
|Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice)
| || X ||
|-
|Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice)
| || X ||
|-
|Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice)
| || X ||
|-
|HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base
| || X ||
|-
|Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base
| || X ||
|-
|Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base
| || X ||
|-
|NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits
| || X ||
|-
|NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature
| || X ||
|-
|Immunities|| <immunities <ImmunityValue>> || Immunity
| X || X || ?
|-
|Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value
| X || X ||
|-
|Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp] [pet]> || Add Object
| X || X || X
|-
|R Equip|| |<req <ObjectDefValue> [???] <HueValue> <Amount> [AT X Y Z] [???] [poi_cleanup]> || Possible bugged entry
| ? || ? || ?
|-
|Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template
| X || X ||
|-
|Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration
| X || X || X
|}
=Value Definitions=
TODO
Templatestable
0
86
301
2010-10-15T15:00:31Z
Derrick
2
moved [[Templatestable]] to [[Templatestable.dat]] over redirect: Fixed IIS config, .dat is now allowed
wikitext
text/x-wiki
#REDIRECT [[Templatestable.dat]]
UODemo Wiki:Community Portal
4
87
302
2010-10-15T15:33:55Z
Derrick
2
Created page with 'http://forum.joinuo.com/viewforum.php?f=32'
wikitext
text/x-wiki
http://forum.joinuo.com/viewforum.php?f=32
UODemo Wiki:Current events
4
88
303
2010-10-15T15:35:59Z
Derrick
2
Created page with 'No current events.'
wikitext
text/x-wiki
No current events.
Uodemo+
0
15
304
250
2010-10-15T15:45:06Z
Derrick
2
moved [[Uodemo+]] to [[Uodemo+.exe]]: + cannot a valid url
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL = <filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
306
304
2010-10-15T15:46:07Z
Derrick
2
moved [[Uodemo+.exe]] to [[Uodemo Plus]]: Plus (+) cannot be contained currently in a URL
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL = <filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
308
306
2010-10-15T16:20:53Z
Derrick
2
moved [[Uodemo Plus]] to [[Uodemo+]]: Undo
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL = <filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME = YES/NO<br>
Publish 14+: MANUALLOGON = YES/NO<br>
Publish 13+: IGNOREDYNIDX0 = YES/NO<br>
Publish 12+: REGKEYNAME = <registry key name><br>
Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE = YES/NO<br>
Publish 8+: SAVEDYNAMIC0 = YES/NO<br>
Publish 6+: LOGFILE = <filename> (Razor format)<br>
Publish 4+: RUNDIR = <directory><br>
Publish 3+: DATFILE = <filename><br>
By default: [[SERVERNAME]] = <directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
UOSL Language Package
0
89
314
2011-05-23T23:36:29Z
Derrick
2
Created page with 'This is a placeholder for infomation on the UOSL Language Service'
wikitext
text/x-wiki
This is a placeholder for infomation on the UOSL Language Service
317
314
2011-05-24T14:24:22Z
Derrick
2
Basic information
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@joinuo.com Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
318
317
2011-05-24T14:25:39Z
Derrick
2
Protected "[[UOSL Language Package]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@joinuo.com Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
File:UoslQuickInfo.png
6
90
315
2011-05-24T13:55:06Z
Derrick
2
UOSL Language Package v2.0: Quick Info, highlighting and method signature help.
wikitext
text/x-wiki
UOSL Language Package v2.0: Quick Info, highlighting and method signature help.
319
315
2011-05-24T14:25:55Z
Derrick
2
Protected "[[File:UoslQuickInfo.png]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
UOSL Language Package v2.0: Quick Info, highlighting and method signature help.
File:UoslAutoComplete.png
6
91
316
2011-05-24T13:56:08Z
Derrick
2
UOSL Language Package v2.0: Autocomplete
wikitext
text/x-wiki
UOSL Language Package v2.0: Autocomplete
320
316
2011-05-24T14:26:10Z
Derrick
2
Protected "[[File:UoslAutoComplete.png]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
UOSL Language Package v2.0: Autocomplete
UOSL Parser
0
92
321
2011-05-24T17:58:02Z
Derrick
2
initial draft
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 3.5
=== Install Instructions ===
* Unzip
RemovePrefix
0
93
323
2011-06-03T00:00:51Z
Derrick
2
Created page with 'void '''removePrefix'''(string & ''theString'', string ''thePrefix''); This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference …'
wikitext
text/x-wiki
void '''removePrefix'''(string & ''theString'', string ''thePrefix'');
This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference string ''theString''.
Return to the [[Command List]].
324
323
2011-06-03T00:01:01Z
Derrick
2
Protected "[[RemovePrefix]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
wikitext
text/x-wiki
void '''removePrefix'''(string & ''theString'', string ''thePrefix'');
This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference string ''theString''.
Return to the [[Command List]].
Triggers
0
94
325
2011-06-29T13:34:15Z
Derrick
2
Created page with '==Full list of Triggers (events)== trigger acquiredesire(obj target) trigger callback<number>() trigger canbuy(obj buyer, obj seller, int quantity) trigger convofunc<string>(…'
wikitext
text/x-wiki
==Full list of Triggers (events)==
trigger acquiredesire(obj target)
trigger callback<number>()
trigger canbuy(obj buyer, obj seller, int quantity)
trigger convofunc<string>(obj talker, string arg)
trigger creation()
trigger creation()
trigger death(obj attacker, obj corpse)
trigger decay(int oldvalue, int newvalue)
trigger destroyed()
trigger enterrange<number>(obj target)
trigger equip(obj equippedon)
trigger famechanged()
trigger foundfood(obj target)
trigger genericgump<number>(obj user, int closeId, list selectList, list entryList)
trigger give(obj giver, obj givenobj)
trigger gotattacked(obj attacker)
trigger hueselected<number>(obj user, int objhue)
trigger ishealthy()
trigger ishitting(obj victim, int damamt)
trigger isstackableon(obj stackon)
trigger killedtarget(obj attacker)
trigger leaverange<number>(obj target)
trigger logout()
trigger lookedat(obj looker)
trigger message<string>(obj sender, list args)
trigger mobishitting(obj victim, int damage)
trigger multirecycle(int oldtype, int newtype)
trigger murdercountchanged()
trigger objaccess<number>(obj user, obj usedon)
trigger objectloaded()
trigger online()
trigger oortargetobj(obj user, obj usedon)
trigger ooruse(obj user)
trigger pathfound<number>()
trigger pathnotfound<number>()
trigger pkpost(obj killer, obj killee)
trigger sawdeath(obj attacker, obj victim, obj corpse)
trigger seekdesire()
trigger seekfood()
trigger seekshelter()
trigger serverswitch()
trigger shop(int func)
trigger speech<string>(obj speaker, string arg)
trigger targetloc(obj user, loc place, int objtype)
trigger targetobj(obj user, obj usedon)
trigger textentry<number>(obj sender, int button, string text)
trigger time<string>()
trigger transaccountcheck(obj target, int transok)
trigger transresponse(obj target, int transok)
trigger typeselected<number>(obj user, int listindex, int objtype, int objhue)
trigger unequip(obj unequippedfrom)
trigger use(obj user)
trigger wasdropped(obj dropper)
trigger wasgotten(obj getter)
trigger washit(obj attacker, int damamt)
327
325
2011-07-10T00:32:21Z
Batlin
3
wikitext
text/x-wiki
In UOSL (Ultima Online Script Language) triggers are used by scripts to react to certain events as they occur in the game. Triggers are only executed by the scripts if the script is attached to an object. The possible triggers are limited by the support in the core (see the list below).
It is also possible to attach a chance to the trigger, in that case the trigger won't execute always. The syntax of the chance is "<number>" which is then placed between the trigger keyword and the actual name of the trigger. [http://www.joinuo.com/forums/viewtopic.php?f=32&t=308 Technical Information]
==Full list of Triggers (events)==
trigger acquiredesire(obj target)
trigger callback<number>()
trigger canbuy(obj buyer, obj seller, int quantity)
trigger convofunc<string>(obj talker, string arg)
trigger creation()
trigger death(obj attacker, obj corpse)
trigger decay(int oldvalue, int newvalue)
trigger destroyed()
trigger enterrange<number>(obj target)
trigger equip(obj equippedon)
trigger famechanged()
trigger foundfood(obj target)
trigger genericgump<number>(obj user, int closeId, list selectList, list entryList)
trigger give(obj giver, obj givenobj)
trigger gotattacked(obj attacker)
trigger hueselected<number>(obj user, int objhue)
trigger ishealthy()
trigger ishitting(obj victim, int damamt)
trigger isstackableon(obj stackon)
trigger killedtarget(obj attacker)
trigger leaverange<number>(obj target)
trigger logout()
trigger lookedat(obj looker)
trigger message<string>(obj sender, list args)
trigger mobishitting(obj victim, int damage)
trigger multirecycle(int oldtype, int newtype)
trigger murdercountchanged()
trigger objaccess<number>(obj user, obj usedon)
trigger objectloaded()
trigger online()
trigger oortargetobj(obj user, obj usedon)
trigger ooruse(obj user)
trigger pathfound<number>()
trigger pathnotfound<number>()
trigger pkpost(obj killer, obj killee)
trigger sawdeath(obj attacker, obj victim, obj corpse)
trigger seekdesire()
trigger seekfood()
trigger seekshelter()
trigger serverswitch()
trigger shop(int func)
trigger speech<string>(obj speaker, string arg)
trigger targetloc(obj user, loc place, int objtype)
trigger targetobj(obj user, obj usedon)
trigger textentry<number>(obj sender, int button, string text)
trigger time<string>()
trigger transaccountcheck(obj target, int transok)
trigger transresponse(obj target, int transok)
trigger typeselected<number>(obj user, int listindex, int objtype, int objhue)
trigger unequip(obj unequippedfrom)
trigger use(obj user)
trigger wasdropped(obj dropper)
trigger wasgotten(obj getter)
trigger washit(obj attacker, int damamt)
Main Page
0
1
326
110
2011-07-10T00:17:24Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
Topics of interest: [[Dating the Ultima Online Demo]]
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
<big>'''UO Demo Forum'''</big>
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== [[Special:AllPages]] ==
SetDecayTest
0
95
329
2011-08-11T20:10:23Z
Batlin
3
Created page with 'void '''setDecayTest'''(integer NewDecayTestMode);<br> This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/v…'
wikitext
text/x-wiki
void '''setDecayTest'''(integer NewDecayTestMode);<br>
This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist.
<pre>
0 = no testing aka normal decay
1 = fast decay
2 = no decay aka ageless
</pre>
If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function.
Return to the [[Command List]].
330
329
2011-08-11T20:10:36Z
Batlin
3
wikitext
text/x-wiki
void '''setDecayTest'''(integer ''NewDecayTestMode'');<br>
This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist.
<pre>
0 = no testing aka normal decay
1 = fast decay
2 = no decay aka ageless
</pre>
If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function.
Return to the [[Command List]].
331
330
2011-08-11T20:19:22Z
Batlin
3
wikitext
text/x-wiki
void '''setDecayTest'''(integer ''NewDecayTestMode'');<br>
This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist.
<pre>
0 = no testing aka normal decay
1 = fast decay
2 = no decay aka ageless
</pre>
If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function.
There is no true function that can be used to get the current decay mode, but you can use the [[getDefaultDieDecay]] function for this purpose by interpreting its return value.
Return to the [[Command List]].
GetDefaultDieDecay
0
96
332
2011-08-11T20:19:31Z
Batlin
3
Created page with 'integer '''setDecayTest'''(void);<br> This function returns a valid known as default die decay, not much is known yet about the exact meaning of the value. Please review the fol…'
wikitext
text/x-wiki
integer '''setDecayTest'''(void);<br>
This function returns a valid known as default die decay, not much is known yet about the exact meaning of the value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode.
<pre>
0x48 = mode 1
0xF0 = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
333
332
2011-08-11T20:20:29Z
Batlin
3
wikitext
text/x-wiki
integer '''getDefaultDieDecay'''(void);<br>
This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode.
<pre>
0x48 = mode 1
0xF0 = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
GetDefaultDieDecay
0
96
334
333
2011-08-11T20:20:57Z
Batlin
3
wikitext
text/x-wiki
integer '''getDefaultDieDecay'''(void);<br>
This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode.
<pre>
0x48 = mode 1
0xFA = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
336
334
2011-08-11T20:26:50Z
Batlin
3
wikitext
text/x-wiki
integer '''getDefaultDieDecay'''(void);<br>
This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode to server is currently using. The following list represents the return values of this function and the related decay modes.
<pre>
0x48 = mode 1
0xFA = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
GetDecayMax
0
97
335
2011-08-11T20:25:27Z
Batlin
3
Created page with 'integer '''getDecayMax'''(object ''AnyObject''); This function can be executed on any object including NPC's and players. It will return the exact same value as [[getDefaultDieD…'
wikitext
text/x-wiki
integer '''getDecayMax'''(object ''AnyObject'');
This function can be executed on any object including NPC's and players. It will return the exact same value as [[getDefaultDieDecay]] as long as a valid object is provided. Therefor this function serves no real purpose.<br>
The function will return 0xFFFFFFF6 (-10) if an invalid object was given.
Return to the [[Command List]].
Main Page
0
1
337
326
2011-08-12T11:43:24Z
Batlin
3
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
Topics of interest: [[Dating the Ultima Online Demo]]
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''Special Interest Links</big>
[[Scripts|About the obfuscated scripts]]
[[Command List|The Command List]]
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
<big>'''UO Demo Forum'''</big>
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== [[Special:AllPages]] ==
363
337
2011-11-21T03:50:35Z
Alfredjxal
39
wikitext
text/x-wiki
wings. certified free online dating service articles? going to put across the how to get knowledge respecting mormon dating sites even though I first saw mormon dating sites 3 weeks ago. easy to locate the aspect. andi to achieve senior dating site. is perhaps why complaints against absolutely free dating site declined by almost 99. ility material to that element. ative of a major group of [http://www.edlhuber.net/wiki/index.php5/Want_to_know_completely_free_dating_sites the best dating sites] the masses. on giving the feeling of being cold. ecommendations? ng as you may just need to take these words to heart. ends whenever free personals dating sites consumers are anxious to save as many pennies as they can. f details? because [http://ovidion.org/index.php?title=S_of_societies_have_circumvented_free_dating_sites herpes dating sites] disagrees with you. t happening at all. to it. nt, I'm going to show you an example of what I'm talking about in the matter of that activity. metimes you will discover a free black dating sites indoors as welcome to the home for the free black dating sites challenged. how you a picture but I wasn't able to do that. not the situation with italian dating sites. s is a way to get recognition for experiencing that. mmunity provided that I'd supposed this would happen, but never dared dream it. zations a ton of grief. egard to [http://freedatingsites.us.com/ free dating sites]. at is how to generate the best free canadian dating sites feelings. [http://arthur1000gefahren.wiki-site.com/index.php/L_help_you_be_higher_than_a_hawk%27s_nest_wherever_i canadian dating sites] deals? you need to do in order to enjoy your free dating sites for men seeking women. e supposition fully. ut here it is: There is not much more to learn touching on on line dating sites. nowledge. a market that favors sellers. not holding back on dating sites free. at. is study. e obviously wrong with regard to that. flicted on beginners. e whole puzzle of the trouble comes into play as well. many game plans as you can to obtain this revision. ence to this is this. ws how little confidence most elites have in free free dating sites. ike it with a theme. ad and buy their transpiration in bulk. ll it be? want your 100% free dating site to look good. you ought to know. the very best as much as in addition to that, you also ought to share insight in respect to using it. isibility in this old chestnut. any insights on what might happen in the future? my article on this embarrassment. attempting to locate an important expert. ict. free sites dating. s. te overcrowded while I was there. road I can simply try to sidestep it when they can. discuss this belief today if you are at all serious in relation to that point of contention. doing that, stick around.
368
363
2011-11-23T19:02:30Z
Derrick
2
Reverted edits by [[Special:Contributions/Alfredjxal|Alfredjxal]] ([[User talk:Alfredjxal|Talk]]) to last revision by [[User:Batlin|Batlin]]
wikitext
text/x-wiki
<big>'''Welcome the UO Demo Wiki.'''</big>
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
Topics of interest: [[Dating the Ultima Online Demo]]
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
<big>'''Special Interest Links</big>
[[Scripts|About the obfuscated scripts]]
[[Command List|The Command List]]
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
<big>'''UO Demo Forum'''</big>
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== [[Special:AllPages]] ==
375
368
2011-11-24T20:17:33Z
Derrick
2
Reogrganized and formatted; added links to SVN and projects
wikitext
text/x-wiki
__NOTOC__
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
== Featured Contents ==
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
[[Special:AllPages]]
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
376
375
2011-11-24T20:19:55Z
Derrick
2
/* Featured Contents */
wikitext
text/x-wiki
__NOTOC__
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
== Featured Contents ==
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
[[Special:AllPages]]
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
378
376
2011-11-24T20:29:14Z
Derrick
2
/* Welcome the UO Demo Wiki. */
wikitext
text/x-wiki
__NOTOC__
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
To install the demo you need an Ultima Online:The Second Age retail CD. These are pretty regularly available on EBay for under $10US.
== Featured Contents ==
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
[[Special:AllPages]]
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
379
378
2011-11-25T15:03:54Z
Derrick
2
/* Welcome the UO Demo Wiki. */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even incude some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other autcion sites.
== Featured Contents ==
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
[[Special:AllPages]]
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
UoDemoInstall.exe is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
380
379
2011-11-25T15:09:43Z
Derrick
2
/* Welcome the UO Demo Wiki. */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
UoDemoInstall.exe is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
381
380
2011-11-25T16:04:10Z
Derrick
2
/* UO Demo Development */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
UoDemoInstall.exe is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
404
381
2011-12-10T20:16:13Z
Derrick
2
/* Featured Contents */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
UoDemoInstall.exe is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
GetCurrentTimeStr
0
70
338
266
2011-08-12T11:45:29Z
Batlin
3
wikitext
text/x-wiki
void '''getCurrentTimeStr'''(string &''ResultString'');
This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function.
However! The demo server code is bugged here ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=569 forum topic]), and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in UoDemo+ Publish 16 and later.
Return to the [[Command List]].
339
338
2011-08-12T11:46:59Z
Batlin
3
wikitext
text/x-wiki
void '''getCurrentTimeStr'''(string &''ResultString'');
This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function.
However! The demo server code is bugged here ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=569 forum topic]), and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in [[uodemo+|UoDemo+]] Publish 16 and later.
Return to the [[Command List]].
Secrets
0
16
340
93
2011-08-12T11:49:26Z
Batlin
3
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br>
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br>
(with thanks to Dies Irae)<br>
'''login.txt'''<br>
The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br>
341
340
2011-08-12T12:06:17Z
Batlin
3
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br>
'''login.txt'''<br>
The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br>
'''The account numbers found in [[dynamic0.mul]] are IP addresses (of OSI programmers back then?)'''<br>
Analysis of the account numbers has revealed that there's a direct match between them and IP addresses. These IP addresses are now owned by EA and were most probably owned by OSI in 1998 (?). The Avatar, the hero of the demo, has has a fixed account number 2130706433 which equals the IP address 127.0.0.1 aka localhost. [http://www.joinuo.com/forums/viewtopic.php?f=32&t=522 forum topic]
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br>
(with thanks to Dies Irae)<br>
Dynamic0.mul
0
2
342
134
2011-08-12T12:12:39Z
Batlin
3
wikitext
text/x-wiki
Found in ../[[.rundir]]/[[uogolddemo]]
This is the world save data file. The associated file [[dynidx0.mul]] is its index.
By default this file cannot be written to, but analysis of the exe has shown that a function exists which can write back the data file. [[uodemo+|UoDemo+, Publish 8]] has been created and added the SAVEDYNAMIC0 option so you can enable this hidden save functionality.
This file is structured as a nested object list.
Each top level entity in the file begins with ''@=<type>'' and ends with ''@end''
Nested Entities do not require @end
Identified types (and guesses):
B=Bulletin Board
C=Container
D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope)
E=Chunk Egg
G=Guard
N=NPC/Creature
P=Player
S=Shopkeeper
W=Wearable (Weapon,Armor)
Z=Item
P Format:
@=P
<propery>=<value>
...
@=[D|C|E]
<propery>=<value>
...
@end
GetTimeSecs
0
69
343
280
2011-08-13T07:51:25Z
Batlin
3
wikitext
text/x-wiki
integer '''getTimeSecs'''(void);
This is a bug-fixed function as of UoDemo+ Publish 16.
This function will return the system time in seconds. This is implemented by using the ''time'' C Library function, therefor the time returned is the number of seconds elapsed since January 1, 1970.
When OSI ported their server code to Windows and merged it with the client code, they made a mistake and replaced the calls to ''time'' with calls to ''timeGetTime''. Thus in the original demo and UoDemo+ up to Publish 15, this function will return the current system time (server time) in milliseconds. This was implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time was the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks.
Return to the [[Command List]].
UOSL Language Package
0
89
369
318
2011-11-23T19:44:10Z
Derrick
2
/* Install Instructions */
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Download:
** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP]
** Source:
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language Official Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@joinuo.com Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
372
369
2011-11-23T19:50:13Z
Derrick
2
/* Install Instructions */
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Download:
** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP]
** Source:
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@joinuo.com Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
UOSL Parser
0
92
370
321
2011-11-23T19:49:37Z
Derrick
2
/* Install Instructions */
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 3.5
=== Install Instructions ===
* Download:
** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP]
** Source:
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language Official Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
371
370
2011-11-23T19:50:04Z
Derrick
2
/* Install Instructions */
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 3.5
=== Install Instructions ===
* Download:
** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP]
** Source:
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
Talk:Main Page
1
121
377
2011-11-24T20:23:28Z
Derrick
2
Created page with 'Need a writeup on how in unpack UODemo.dat'
wikitext
text/x-wiki
Need a writeup on how in unpack UODemo.dat
Command List
0
37
382
328
2011-11-27T21:28:58Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer isObscene(string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
IsOwnedPet
0
122
383
2011-11-27T21:34:53Z
Batlin
3
Created page with 'integer '''isOwnedPet'''(object ''AnyObject''); This function will return 1 if the given object is valid and it is a NPC. Also it has to have an attached list variable named "my…'
wikitext
text/x-wiki
integer '''isOwnedPet'''(object ''AnyObject'');
This function will return 1 if the given object is valid and it is a NPC. Also it has to have an attached list variable named "myBoss" with atleast 1 item in that list. Otherwise 0 is returned.
Return to the [[Command List]].
UO:98
0
123
384
2011-12-07T01:08:30Z
Derrick
2
Created page with 'UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo …'
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
The UO:98 distribution requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
390
384
2011-12-09T16:29:30Z
Derrick
2
Installing and Using
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
391
390
2011-12-09T16:43:31Z
Derrick
2
Administrating UO:98
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
392
391
2011-12-10T00:41:44Z
Derrick
2
/* Administrating UO:98 */ Added imfo on commands and other handy stuff
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numberic item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shots down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
393
392
2011-12-10T00:49:27Z
Derrick
2
/* GM"cheat" Commands */ more commands
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
*** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shots down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
394
393
2011-12-10T00:52:24Z
Derrick
2
/* GM"cheat" Commands */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shots down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
395
394
2011-12-10T00:58:15Z
Derrick
2
/* SCommands */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
396
395
2011-12-10T18:37:22Z
Derrick
2
Added installer download links
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
400
396
2011-12-10T19:53:42Z
Derrick
2
Added "How does it work"
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
405
400
2011-12-10T21:26:40Z
Derrick
2
forums link
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
408
405
2011-12-11T22:11:23Z
Derrick
2
Added image
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
Uo98
0
124
385
2011-12-07T01:10:21Z
Derrick
2
Redirected page to [[UO:98]]
wikitext
text/x-wiki
#REDIRECT [[UO:98]]
Uo:98
0
125
386
2011-12-09T15:34:22Z
Derrick
2
Redirected page to [[UO:98]]
wikitext
text/x-wiki
#REDIRECT [[UO:98]]
Uo 98
0
126
387
2011-12-09T15:34:54Z
Derrick
2
Redirected page to [[UO:98]]
wikitext
text/x-wiki
#REDIRECT [[UO:98]]
File:UO98 Startup.png
6
127
388
2011-12-09T16:02:20Z
Derrick
2
UO:98 Startup
wikitext
text/x-wiki
UO:98 Startup
File:UO98 Ingame.png
6
128
389
2011-12-09T16:12:23Z
Derrick
2
wikitext
text/x-wiki
UO98
0
129
397
2011-12-10T19:13:53Z
Derrick
2
Redirected page to [[UO:98]]
wikitext
text/x-wiki
#REDIRECT [[UO:98]]
UoDemo+
0
130
398
2011-12-10T19:45:49Z
Derrick
2
Redirected page to [[Uodemo+]]
wikitext
text/x-wiki
#REDIRECT [[Uodemo+]]
UODemo.EXE
0
131
399
2011-12-10T19:49:04Z
Derrick
2
Redirected page to [[Uodemo.exe]]
wikitext
text/x-wiki
#REDIRECT [[Uodemo.exe]]
File:UoDemoDLL cfg.png
6
132
401
2011-12-10T19:59:36Z
Derrick
2
wikitext
text/x-wiki
File:B & r = cheat console.png
6
133
402
2011-12-10T19:59:49Z
Derrick
2
wikitext
text/x-wiki
UoDemoDLL
0
134
403
2011-12-10T20:01:51Z
Derrick
2
http://www.joinuo.com/forums/viewtopic.php?f=32&t=608
wikitext
text/x-wiki
UoDemo+ Publish 15 introduced the option to attach a DLL to the demo.
You will need:
* Borland C++ 5.5 (Free Compiler) http://edn.embarcadero.com/article/20633
* Turbo Assember 5.X http://www.phatcode.net/downloads.php?id=280
Both of them are good old command-line tools, so don't expect something fancy .
The idea of the uodemo.dll is:
* You set the environment variable UODEMODLL to a DLL made using this API
* You start uodemo+.exe (Publish 15 or later)
* uodemo+.exe will load your DLL
* uodemo.dll is now in the same address space as the EXE
* uodemo.dll makes patches inside uodemo+.exe in order to redirect (intercept) calls out of the EXE into the DLL
* Because we own/write the DLL and it's written in C it becomes easy to recode certain functions/behaviours
Even though this all sounds great, it is a lot of work because to intercept and call functions inside the EXE, you need a good knowledge of the functions and structure-layouts inside the EXE. That's what the API is for, it exposes interesting functions in a more readable fashion, so you don't need to think about the assembler and internals.
This screenshot shows how to configure the API for the default test project. There are 3 batch files you can use : cfg, b and r. cfg to configure the environment, b to build to the project, r to run the project. Also refer to this screenshot:
[[File:UoDemoDLL cfg.png]]
You should edit cfg.cmd to ensure your build environment is correct with your computer.
Use b and then r to test, if you successfull you get this :
[[File:B & r = cheat console.png]]
Download the project here: http://download.joinuo.com/UoDemoDLL/
Uodemo+
0
15
406
308
2011-12-11T18:42:46Z
Derrick
2
Env var options cannot have spaces next to =
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL=<filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME=YES/NO<br>
Publish 14+: MANUALLOGON=YES/NO<br>
Publish 13+: IGNOREDYNIDX0=YES/NO<br>
Publish 12+: REGKEYNAME=<registry key name><br>
Publish 12+: LOCALCOUNSELOR=1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE=YES/NO<br>
Publish 8+: SAVEDYNAMIC0=YES/NO<br>
Publish 6+: LOGFILE=<filename> (Razor format)<br>
Publish 4+: RUNDIR=<directory><br>
Publish 3+: DATFILE=<filename><br>
By default: [[SERVERNAME]]=<directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
File:UO98 God Client.JPG
6
135
407
2011-12-11T22:09:48Z
Derrick
2
God Client Support in UO:98
wikitext
text/x-wiki
God Client Support in UO:98
File:Checkout.JPG
6
136
409
2011-12-13T15:12:57Z
Derrick
2
Check out UO:98 from our public SVN repository.
wikitext
text/x-wiki
Check out UO:98 from our public SVN repository.
File:Confirm.JPG
6
137
410
2011-12-13T15:15:56Z
Derrick
2
Confirm Checkout to existing folder
wikitext
text/x-wiki
Confirm Checkout to existing folder
File:UO98folder.JPG
6
138
411
2011-12-13T15:16:45Z
Derrick
2
Development checkout complete
wikitext
text/x-wiki
Development checkout complete
File:Uo98solution.JPG
6
139
412
2011-12-13T15:36:18Z
Derrick
2
UO:98 Solution
wikitext
text/x-wiki
UO:98 Solution
UO:98
0
123
413
408
2011-12-13T16:33:44Z
Derrick
2
Added section on Development
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folderl choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the disribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary projects in the UO:98 solution. The Sidekick and UODemoDLL projects are used to trasition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything; but this goal is not currently being met.
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
414
413
2011-12-13T16:35:45Z
Derrick
2
/* Development */ spelling
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary projects in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unman-aged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything; but this goal is not currently being met.
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
415
414
2011-12-13T16:44:13Z
Derrick
2
/* The Solution File */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
416
415
2011-12-13T17:05:18Z
Derrick
2
/* Getting the Source */ extra [
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Administrator'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
417
416
2011-12-13T17:50:46Z
Derrick
2
/* Using UO:98 */ oops: username is Admin, not Administrator
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
* [spawn <templateid>
** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
* [spawnitem <itemid>
** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
* [tele <X> <Y> [Z]
** Teleports your to the specified map location. Z is optional.
* [setskill <#> <val>
** Sets your skill of # to the specified value (integer 0-100)
* [setskill all <val>
** Sets all your skills to the specified value (integer 0-100)
* [listskills
** Lists all the numeric skill id's (for use in the setskill command)
* [addscript <name>
** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
* [where
** Prints our your location.
* [setname <new name>
** Sets the name (RealName) of the target
* [getserial
* [gethue
* [getheight
* [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
420
417
2011-12-13T19:33:22Z
Derrick
2
/* GM"cheat" Commands */ changed to Definition list
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
; [gethue
; [getheight
; [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
421
420
2011-12-13T19:33:59Z
Derrick
2
/* Development */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
; [gethue
; [getheight
; [getelevation
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
* ]save
* Saves the world to dynamic0.mul
* ]coun [me|<serial> [type]]
** Makes the target (or yourself if "me") a counselor.
* ]ucoun [me|<serial>]
** Unmakes the target a counselor
* ]shutdown
** Shuts down the server, without save.
* ]test
** This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
422
421
2011-12-13T19:36:15Z
Derrick
2
/* In Game Commands */ definition list for SCommands
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
* 3501: loaded spellbook
* 3506: reagent bag
* 1504: 100 gold
* 1900-1920 Houses
* 1800-1805 Boats
* for more: /rundir/bank/templatestable.dat
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
423
422
2011-12-13T19:37:38Z
Derrick
2
/* Handy Templates */ definition list
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
* gmcheat :GM Commands
* commandDelete: items
* commandZap: Mobiles
* commandInvulnerable
* commandSlay
* commandResurrect
* commandFreeze
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
424
423
2011-12-13T19:47:36Z
Derrick
2
/* Handy Scripts */ Definition list, and a bit more info and commands
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[##GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
425
424
2011-12-13T19:51:52Z
Derrick
2
/* Handy Scripts */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
426
425
2011-12-13T19:57:15Z
Derrick
2
/* Using UO:98 */ Requires unencrpyted client.
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL.
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
428
426
2011-12-13T20:02:50Z
Derrick
2
/* The Solution File */ added some links
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]].
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
429
428
2011-12-13T20:05:10Z
Derrick
2
/* Getting the Source */
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]].
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
430
429
2011-12-13T20:16:13Z
Derrick
2
/* Using UO:98 */ Saves and Restoring
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.joinuo.com/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/rundir/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - God Client Features (i.e., GM)
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in /rundir/bank/templatestable.dat.q
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]].
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
431
430
2011-12-13T20:37:00Z
Derrick
2
/* Administrating UO:98 */ added some links
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.joinuo.com/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "[[God Client]]" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/[[.rundir|rundir]]/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - [[God Client]] Features (i.e., GM). See also: [[IsEditing]]
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]]
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object. See also: [[Objtoint]]
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]]
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98
If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortiseSVN to check out the solution:
* Install Tortise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.joinuo.com/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]].
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello.
You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
UOSL Parser
0
92
418
371
2011-12-13T19:11:38Z
Derrick
2
/* Install Instructions */ Source now requires .net 4.0
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 3.5
=== Install Instructions ===
* Download:
** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP]
** Source: (latest version requires .net 4.0)
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
434
418
2012-10-20T23:02:53Z
Derrick
2
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 4.0
=== Install Instructions ===
* Download:
** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP]
** Source: (latest version requires .net 4.0)
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
UOSL Language Package
0
89
419
372
2011-12-13T19:12:38Z
Derrick
2
/* Requirements */
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5 and .Net 4.0
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Download:
** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP]
** Source:
*** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@joinuo.com Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
UODemoDLL
0
140
427
2011-12-13T19:59:26Z
Derrick
2
Redirected page to [[UoDemoDLL]]
wikitext
text/x-wiki
#REDIRECT [[UoDemoDLL]]
Main Page
0
1
432
404
2011-12-13T20:47:50Z
Derrick
2
/* UO Demo Development */ Added UO:98
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
UoDemoInstall.exe is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO:98 Public Ultima Online Server ===
[[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]].
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
433
432
2011-12-13T20:48:09Z
Derrick
2
/* Files on the UO:The Second Age retail CD */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
[[UoDemoInstall.exe]] is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO:98 Public Ultima Online Server ===
[[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]].
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
EatObject
0
74
435
279
2012-10-21T06:55:03Z
Batlin
3
wikitext
text/x-wiki
integer '''eatObject'''(object ''Eater'', object ''Eaten'');
This function will not do anything but to check the input.<br>
If Eater is a NPC and Eaten is a valid object then 1 is returned.<br>
In all other cases this full function will return 0.<br>
Note: from the disassembly it's clear that this function was ment to be only used by NPC's.
Return to the [[Command List]].
436
435
2012-10-21T06:56:02Z
Batlin
3
wikitext
text/x-wiki
integer '''eatObject'''(object ''Eater'', object ''Eaten'');
This function will not do anything except checking the input.<br>
If Eater is a NPC and Eaten is a valid object then 1 is returned.<br>
In all other cases this full function will return 0.<br>
Note: from the disassembly it's clear that this function was ment to be only used by NPC's.
Return to the [[Command List]].
Command List
0
37
437
382
2012-10-21T07:10:34Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void openBank(object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
439
437
2012-10-21T17:49:29Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer isRidable(object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
443
439
2012-10-21T18:01:20Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer getResourceTypeIdByName(integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
447
443
2012-10-21T21:09:14Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer isHumanBodyType(object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
451
447
2012-11-22T21:27:55Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer getObjType(object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
454
451
2012-11-22T21:38:22Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void getequipment(list, object);<br>
void getEquipment(list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer [[getObjType]](object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
457
454
2012-11-24T18:33:20Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void getcontents(list, object);<br>
void getContents(list, object);<br>
void [[getEquipment|getequipment]](list, object);<br>
void [[getEquipment]](list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer [[getObjType]](object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
IsObscene
0
141
438
2012-10-21T07:15:10Z
Batlin
3
Created page with 'integer '''isObscene'''(string ''Word''); This function will check if the word is one of the words in the three lists below. The lists below are in the same order the words will…'
wikitext
text/x-wiki
integer '''isObscene'''(string ''Word'');
This function will check if the word is one of the words in the three lists below.
The lists below are in the same order the words will be checked by the demo core.
It's funny to notice that the words Origin and OSI are considered obscene.
ass
clit
clitoris
cock
cocksucker
cum
cunnilingus
chink
chinc
dildo
dyke
felatio
lesbo
lezbo
piss
prick
spic
tit
kike
kyke
wop
chigaboo
jigaboo
fuck
shit
twat
cunt
snatch
pussy
dick
asshole
bitch
blowjob
fag
goddamn
jackoff
jerkoff
jism
jiz
kunt
klit
nigger
nigga
penis
Origin
OSI
invulnerable
frozen
squelched
Return to the [[Command List]].
dd offset aOrigin ; DATA XREF: FUNC_IsWordObscene+2E�o
OpenBank
0
142
440
2012-10-21T17:54:10Z
Batlin
3
Created page with 'void '''openBank'''(object ''Player'');<br> The ''openBank'' function expects a valid player object. If a player object was provided then: 1) a packet is send to his/her client …'
wikitext
text/x-wiki
void '''openBank'''(object ''Player'');<br>
The ''openBank'' function expects a valid player object.
If a player object was provided then:
1) a packet is send to his/her client with the bank contents
2) the object variable ''bankOpenLoc'' is set and will contain the currect location of the player
Return to the [[Command List]].
441
440
2012-10-21T17:54:23Z
Batlin
3
wikitext
text/x-wiki
void '''openBank'''(object ''Player'');<br>
The ''openBank'' function expects a valid player object.<br>
If a player object was provided then:<br>
1) a packet is send to his/her client with the bank contents<br>
2) the object variable ''bankOpenLoc'' is set and will contain the currect location of the player<br>
Return to the [[Command List]].
442
441
2012-10-21T17:54:51Z
Batlin
3
wikitext
text/x-wiki
void '''openBank'''(object ''Player'');<br>
The ''openBank'' function expects a valid player object.<br>
If a player object was provided then:<br>
-1- a packet is send to his/her client with the bank contents<br>
-2- the object variable ''bankOpenLoc'' is set and will contain the currect location of the player<br>
Return to the [[Command List]].
IsRidable
0
143
444
2012-10-21T18:07:36Z
Batlin
3
Created page with 'integer '''isRidable'''(object ''Mobile''); This function will return 0 if the given ojbect is not a mobile.<br> The function will return 1 if the mobile is mountable/ridable, o…'
wikitext
text/x-wiki
integer '''isRidable'''(object ''Mobile'');
This function will return 0 if the given ojbect is not a mobile.<br>
The function will return 1 if the mobile is mountable/ridable, otherwise 0 is returned.<br>
An object is considered mountable/ridable if it has a resource attached which has a food name equal to ''RIDABLE''.<br>
(See restypes.mul.q and itemres.mul.q)
Return to the [[Command List]].
445
444
2012-10-21T18:38:10Z
Batlin
3
Protected "[[IsRidable]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
integer '''isRidable'''(object ''Mobile'');
This function will return 0 if the given ojbect is not a mobile.<br>
The function will return 1 if the mobile is mountable/ridable, otherwise 0 is returned.<br>
An object is considered mountable/ridable if it has a resource attached which has a food name equal to ''RIDABLE''.<br>
(See restypes.mul.q and itemres.mul.q)
Return to the [[Command List]].
Scripts
0
12
446
177
2012-10-21T19:44:36Z
Batlin
3
wikitext
text/x-wiki
The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]].
A decompiler can be found here : [[Mass M Decompiler]].<br>
A list with commands that scripts can use can be found here : [[Command List]]
The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]].
The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser.
The obfuscation works as follows: each token is represented by 5 different words (2 bytes).
For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease.
Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br>
Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br>
----
'''This is a list of supported tokens:'''<br>
0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br>
0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br>
0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br>
0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br>
0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br>
0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br>
0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br>
0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br>
0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br>
0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br>
0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br>
0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br>
0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br>
0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br>
0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br>
0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br>
0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br>
0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br>
0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br>
0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br>
0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br>
0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br>
0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br>
0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br>
0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br>
0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br>
0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br>
0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br>
0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br>
0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br>
0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br>
0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br>
0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br>
0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br>
0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br>
0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br>
0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br>
0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br>
0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br>
0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br>
0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br>
0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br>
0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br>
0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br>
0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br>
0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br>
0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br>
0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br>
0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br>
0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br>
0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br>
0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br>
NOTE: if you include a script it must the very first statement and you can only include one script per script!
'''This is a list of supported but unused tokens:'''<br>
0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br>
NOTE: this means you can create scripts that implement XOR (none of the included OSI scripts do this)
'''This is a list of defined but unsupported tokens:'''<br>
0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br>
0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br>
0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br>
0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br>
0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br>
NOTE: the ENDxxx statements are only used internally and are added by the parser where needed
'''This is a list of obfuscated but unsupported tokens:'''<br>
0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br>
0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br>
0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br>
0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br>
0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br>
0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br>
0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br>
----
The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement].
GetResourceTypeIdByName
0
144
448
2012-10-21T21:12:13Z
Batlin
3
Created page with 'integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName''); This function will return 1 if the requested ResourceTypeInternalName is v…'
wikitext
text/x-wiki
integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName'');
This function will return 1 if the requested ResourceTypeInternalName is valid.
Otherwise 0 is returned.
If successfull ReturnTypeId will contain the Id of the requested ResourceType.
Resource Types are defined in the server-side restypes.mul file.
Return to the [[Command List]].
449
448
2012-10-21T21:12:34Z
Batlin
3
wikitext
text/x-wiki
integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName'');
This function will return 1 if the requested ResourceTypeInternalName is valid.<br>
Otherwise 0 is returned.<br>
If successfull ReturnTypeId will contain the Id of the requested ResourceType.<br>
Resource Types are defined in the server-side restypes.mul file.<br>
Return to the [[Command List]].
450
449
2012-10-21T21:12:40Z
Batlin
3
Protected "[[GetResourceTypeIdByName]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName'');
This function will return 1 if the requested ResourceTypeInternalName is valid.<br>
Otherwise 0 is returned.<br>
If successfull ReturnTypeId will contain the Id of the requested ResourceType.<br>
Resource Types are defined in the server-side restypes.mul file.<br>
Return to the [[Command List]].
IsHumanBodyType
0
145
452
2012-11-22T21:37:29Z
Batlin
3
Created page with 'integer '''isHumanBodyType'''(object ''Mobile'');<br> The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or femal…'
wikitext
text/x-wiki
integer '''isHumanBodyType'''(object ''Mobile'');<br>
The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or female.
The function will return 0 if the specified serial is invalid or is not a mobile.<br>
The following object types are valid human body types: 400, 401, 402, 403. The later two are the ghost bodies of the first two.
Because the return value 0 indicates both invalid serial/mobile and a non-human body type you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br>
You can also use the [[getObjType]] function to get the actual body type of a mobile.
Counselors and Game Masters have a body type of 987 and therefor do not have a human body type according to this function!
Return to the [[Command List]].
453
452
2012-11-22T21:37:56Z
Batlin
3
Protected "[[IsHumanBodyType]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
integer '''isHumanBodyType'''(object ''Mobile'');<br>
The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or female.
The function will return 0 if the specified serial is invalid or is not a mobile.<br>
The following object types are valid human body types: 400, 401, 402, 403. The later two are the ghost bodies of the first two.
Because the return value 0 indicates both invalid serial/mobile and a non-human body type you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br>
You can also use the [[getObjType]] function to get the actual body type of a mobile.
Counselors and Game Masters have a body type of 987 and therefor do not have a human body type according to this function!
Return to the [[Command List]].
GetObjType
0
146
455
2012-11-22T21:49:58Z
Batlin
3
Created page with 'integer '''getObjType'''(object ''AnyObject'');<br> The ''getObjType'' function will return the type of an object. If the specified object is not valid then 0 is returned.<br> …'
wikitext
text/x-wiki
integer '''getObjType'''(object ''AnyObject'');<br>
The ''getObjType'' function will return the type of an object.
If the specified object is not valid then 0 is returned.<br>
For mobiles the object type is interpreted as the body type.
Return to the [[Command List]].
456
455
2012-11-22T21:50:08Z
Batlin
3
Protected "[[GetObjType]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))
wikitext
text/x-wiki
integer '''getObjType'''(object ''AnyObject'');<br>
The ''getObjType'' function will return the type of an object.
If the specified object is not valid then 0 is returned.<br>
For mobiles the object type is interpreted as the body type.
Return to the [[Command List]].
GetEquipment
0
147
458
2012-11-24T18:37:47Z
Batlin
3
Created page with 'integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of the function …'
wikitext
text/x-wiki
integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br>
integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br>
At the beginning of the function is that target list ''TargetList'' will be emptied.<br>
Then if the the given mobile is valid then the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''.
Return to the [[Command List]].
Equipment
0
148
459
2012-11-24T18:42:29Z
Batlin
3
Created page with 'Each mobile has an array of 30 equipable item. Only the first 26 ones matter for the client. 25: If the mobile is mounted, the mount is at index 25.<br> 29: At the last index y…'
wikitext
text/x-wiki
Each mobile has an array of 30 equipable item.
Only the first 26 ones matter for the client.
25: If the mobile is mounted, the mount is at index 25.<br>
29: At the last index you will find the mobile's bank.<br>
472
459
2012-11-24T20:19:27Z
Batlin
3
wikitext
text/x-wiki
Each mobile has an array of 30 equipable items.
Only the first 26 ones matter for the client.
25: If the mobile is mounted, the mount is at index 25.<br>
29: At the last index you will find the mobile's bank.<br>
GetEquipment
0
147
460
458
2012-11-24T18:42:44Z
Batlin
3
wikitext
text/x-wiki
integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br>
integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br>
At the beginning of the function is that target list ''TargetList'' will be emptied.<br>
Then if the given mobile is valid then the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''.
Return to the [[Command List]].
463
460
2012-11-24T18:52:51Z
Batlin
3
wikitext
text/x-wiki
integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br>
integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br>
At the beginning of this function the target list ''TargetList'' is emptied.<br>
Then if the given mobile is vali, the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''.
Return to the [[Command List]].
464
463
2012-11-24T18:53:00Z
Batlin
3
wikitext
text/x-wiki
integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br>
integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br>
At the beginning of this function the target list ''TargetList'' is emptied.<br>
Then if the given mobile is valid, the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''.
Return to the [[Command List]].
Command List
0
37
461
457
2012-11-24T18:49:01Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void [[getContents|getcontents]](list, object);<br>
void [[getContents]](list, object);<br>
void [[getEquipment|getequipment]](list, object);<br>
void [[getEquipment]](list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer [[getObjType]](object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer getEquipSlot(object);<br>
object getItemAtSlot(object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
465
461
2012-11-24T19:05:55Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void [[getContents|getcontents]](list, object);<br>
void [[getContents]](list, object);<br>
void [[getEquipment|getequipment]](list, object);<br>
void [[getEquipment]](list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer [[getObjType]](object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer [[getEquipSlot]](object);<br>
object [[getItemAtSlot]](object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer getMiscData(object);<br>
integer getQuality(object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
476
465
2012-11-24T20:36:21Z
Batlin
3
wikitext
text/x-wiki
This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards.
The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details.
== Internal Statements: ==
void TK_IF(integer, integer);<br>
void TK_ELSE(integer);<br>
void TK_ENDIF(void);<br>
void TK_WHILE(integer, integer);<br>
void TK_ENDWHILE(integer);<br>
void TK_FOR(integer, integer);<br>
void TK_ENDFOR(integer);<br>
void TK_CONTINUE(integer);<br>
void TK_BREAK(integer);<br>
void TK_GOTO(integer);<br>
void TK_SWITCH(integer);<br>
void TK_ENDSWITCH(void);<br>
void TK_CASE(void);<br>
void TK_DEFAULT(void);<br>
void TK_RETURN(void);<br>
void TK_RETURN(integer);<br>
void TK_RETURN(location);<br>
void TK_RETURN(object);<br>
void TK_RETURN(string);<br>
== Internal Functions: ==
integer oprnull(integer);<br>
integer oprplus(integer, integer);<br>
integer oprminus(integer, integer);<br>
integer oprmult(integer, integer);<br>
integer oprdiv(integer, integer);<br>
integer oprand(integer, integer);<br>
integer opror(integer, integer);<br>
integer oprxor(integer, integer);<br>
integer oprequiv(integer, integer);<br>
integer oprnequiv(integer, integer);<br>
integer oprgt(integer, integer);<br>
integer oprlt(integer, integer);<br>
integer oprmod(integer, integer);<br>
integer oprgteq(integer, integer);<br>
integer oprlteq(integer, integer);<br>
integer oprnot(integer);<br>
any oprlist(list, integer);<br>
list oprlist(list, integer);<br>
integer oprlist(list, integer);<br>
string oprlist(list, integer);<br>
unicode oprlist(list, integer);<br>
location oprlist(list, integer);<br>
object oprlist(list, integer);<br>
string oprlist(string, integer);<br>
void oprinc(integer &);<br>
void oprdec(integer &);<br>
string oprplus(string, string);<br>
string oprplus(string, integer);<br>
string oprplus(string, location);<br>
integer oprequiv(string, string);<br>
integer oprnequiv(string, string);<br>
integer oprequiv(location, location);<br>
integer oprnequiv(location, location);<br>
integer oprequiv(object, object);<br>
integer oprnequiv(object, object);<br>
void assignint(integer &, integer);<br>
void assignstr(string &, string);<br>
void assignust(unicode &, unicode);<br>
void assignobj(object &, object);<br>
void assignloc(location &, location);<br>
void assignlist(list, list);<br>
== All Public Functions: ==
void append(list, any);<br>
void appendToList(list, any);<br>
void prepend(list, any);<br>
void prependToList(list, any);<br>
void insert(list, any, integer);<br>
void insertInList(list, any, integer);<br>
integer numinlist(list &);<br>
integer numInList(list);<br>
integer isinlist(list, any);<br>
integer isInList(list, any);<br>
void setitem(list, any, integer);<br>
void setItem(list, any, integer);<br>
void setLocItem(list, location, integer);<br>
void concatList(list, list);<br>
void truncateList(list, integer);<br>
void removeitem(list, integer);<br>
void removeItem(list, integer);<br>
void removespecificitem(list, any);<br>
void removeSpecificItem(list, any);<br>
void clearlist(list);<br>
void clearList(list);<br>
void printList(list);<br>
integer getListItemType(list &, integer);<br>
void copylist(list, list);<br>
void copyList(list, list);<br>
void sortList(list, integer);<br>
integer isArrayInit(integer);<br>
void initArray(integer, integer, integer, list);<br>
void initArrayFromFile(integer, integer, integer, string);<br>
void deleteArray(integer);<br>
void setArrayIntElem(integer, integer, integer, integer);<br>
void setArrayStrElem(integer, integer, integer, string);<br>
void setArrayUStrElem(integer, integer, integer, unicode);<br>
void setArrayElemns(integer, integer, integer, list);<br>
integer getArrayIntElem(integer, integer, integer);<br>
string getArrayStrElem(integer, integer, integer);<br>
unicode getArrayUStrElem(integer, integer, integer);<br>
integer getArrayWidth(integer);<br>
integer getArrayHeight(integer);<br>
void assignintstr(integer &, string);<br>
void assignstrint(string &, integer);<br>
void assignustint(unicode &, integer);<br>
void assignlocint(location &, integer, integer, integer);<br>
integer [[objtoint]](object);<br>
void split(list, string);<br>
integer wordWrap(list, string, integer);<br>
integer textSubstitute(string &, string, string, string);<br>
void split(list, string);<br>
void splitCommaDelimitedString(list, string);<br>
void concat(string, string);<br>
void barkstr(string);<br>
void barkint(integer);<br>
integer [[strtoi]](string);<br>
integer [[strlen]](string);<br>
void toUpper(string &, integer, integer);<br>
void [[removePrefix]](string &, string);<br>
integer [[getCompileFlag]](integer);<br>
void sendToNearbyPlayers(object, integer);<br>
void targetobj(object, object);<br>
void targetobj(object, object);<br>
void targetloc(object, object);<br>
void targetloc(object, object);<br>
void supertargetobj(object, object, integer);<br>
void superTargetObj(object, object, integer);<br>
void supertargetloc(object, object, integer, integer);<br>
void superTargetLoc(object, object, integer, integer);<br>
void targetlocmulti(object, object, integer, integer, integer, integer);<br>
void targetLocMulti(object, object, integer, integer, integer, integer);<br>
void targetLocObjList(object, object, integer, integer, integer, list);<br>
void addfrag(object, string);<br>
void addFrag(object, string);<br>
void addfragment(object, string);<br>
void addFragment(object, string);<br>
void removefragment(object, string);<br>
void removeFragment(object, string);<br>
integer [[hasScript|hasscript]](object, string);<br>
integer [[hasScript]](object, string);<br>
void attachscript(object, string);<br>
void attachScript(object, string);<br>
void detachscript(object, string);<br>
void detachScript(object, string);<br>
void getScripts(list, object);<br>
void [[getContents|getcontents]](list, object);<br>
void [[getContents]](list, object);<br>
void [[getEquipment|getequipment]](list, object);<br>
void [[getEquipment]](list, object);<br>
void [[callBack|callback]](object, integer, integer);<br>
void [[callBack]](object, integer, integer);<br>
void [[shortCallback|shortcallback]](object, integer, integer);<br>
void [[shortCallback]](object, integer, integer);<br>
void removeCallback(object, integer);<br>
void removeCallbackAdvanced(object, integer, integer);<br>
integer hasCallback(object, integer);<br>
integer hasCallbackAdvanced(object, integer, integer);<br>
void callbackAdvanced(object, integer, integer, integer);<br>
void selectType(object, object, integer, string, list);<br>
void selectTypeAndHue(object, object, integer, string, list);<br>
void selectHue(object, object, integer, integer);<br>
void message(object, string, list);<br>
integer messageret(object, object, string, list);<br>
void multimessage(object, string, list);<br>
void multiMessage(object, string, list);<br>
void multiMessageToLoc(location, string, list);<br>
void multiMessageToRange(location, integer, string, list);<br>
void messageToRange(location, integer, string, list);<br>
integer hasObjVar(object, string);<br>
integer hasObjListVar(object, string);<br>
any getObjVar(object, string);<br>
integer getObjVar(object, string);<br>
string getObjVar(object, string);<br>
location getObjVar(object, string);<br>
object getObjVar(object, string);<br>
integer getobjvar_int(object, string);<br>
string getobjvar_str(object, string);<br>
location getobjvar_loc(object, string);<br>
object getobjvar_obj(object, string);<br>
void getObjListVar(list, object, string);<br>
void setObjVar(object, string, any);<br>
void removeObjVar(object, string);<br>
void copyObjVar(object, object, string);<br>
void copyAllObjVars(object, object);<br>
integer addToObjVarListSet(object, string, any);<br>
integer isInObjVarListSet(object, string, any);<br>
void changeLoc(location &, integer, integer, integer);<br>
object [[NULL]](void);<br>
void setDefaultReturn(integer);<br>
void setConvoRet(string);<br>
void disableBehaviors(object);<br>
void enableBehaviors(object);<br>
integer areBehaviorsEnabled(object);<br>
void callGuards(object, location, integer);<br>
void seance(object, integer);<br>
void setLastValidTerrainLoc(object, location);<br>
integer teleport(object, location);<br>
integer teleportNoFall(object, location);<br>
integer random(integer, integer);<br>
integer dice(integer, integer);<br>
void deleteObject(object);<br>
void deleteObjectNoFall(object);<br>
integer putObjContainer(object, object);<br>
integer toMobile(object, object);<br>
integer putObjBank(object, object);<br>
integer putMobContainer(object, object);<br>
integer withdrawFromBank(object, integer);<br>
integer withdrawAndDestroy(object, integer);<br>
void [[openBank]](object);<br>
integer depositIntoBank(object, object, integer);<br>
integer amtGoldInBank(object);<br>
integer equipObj(object, object, integer);<br>
integer dropObj(object, location);<br>
integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br>
integer findGoodSpotNear(location &, integer, integer, integer);<br>
integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br>
integer findGoodZ(location, integer, integer, integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer walk(object, integer);<br>
integer run(object, integer);<br>
void setType(object, integer);<br>
void setHue(object, integer);<br>
void setPartialHue(object, integer);<br>
void setDefaultTextHue(object, integer);<br>
integer getDefaultTextHue(object);<br>
void animateMobile(object, integer, integer, integer, integer, integer);<br>
void sfx(location, integer, integer);<br>
void sfxTo(object, integer, integer);<br>
void musicTo(object, integer);<br>
integer getDirectionInternal(location, location);<br>
string getDirection(location, location);<br>
integer [[getDistanceInTiles]](location, location);<br>
string [[getDistance]](location, location);<br>
location interpose(location, location);<br>
integer getFacing(object);<br>
integer getHue(object);<br>
integer isFacingPlace(object, location);<br>
integer isFacingPerson(object, object);<br>
integer facingEachOther(object, object);<br>
void faceHere(object, integer);<br>
integer [[getSex]](object);<br>
integer [[sameSex]](object, object);<br>
integer [[isHumanBodyType]](object);<br>
integer isHuman(object);<br>
integer [[isMobile]](object);<br>
integer [[isPlayer]](object);<br>
integer [[isSpellbook]](object);<br>
integer isContainer(object);<br>
integer isRealContainer(object);<br>
integer isMap(object);<br>
integer [[isNPC]](object);<br>
integer [[isOwnedPet]](object);<br>
integer [[isShopKeeper]](object);<br>
integer [[isGuard]](object);<br>
integer isDead(object);<br>
integer isInContainer(object);<br>
integer isEquipped(object);<br>
integer isMoveable(object, object);<br>
integer isFreelyUsable(object, object);<br>
integer isFreelyViewable(object, object);<br>
integer [[isOnline]](object);<br>
object containedBy(object);<br>
object getTopmostContainer(object);<br>
integer isNoDrawType(integer);<br>
void bark(object, string);<br>
void ebark(object, string);<br>
void barkTo(object, object, string);<br>
void ebarkTo(object, object, string);<br>
void barkToHued(object, object, integer, string);<br>
void bark(object, unicode);<br>
void ebark(object, unicode);<br>
void barkTo(object, object, unicode);<br>
void ebarkTo(object, object, unicode);<br>
void barkToHued(object, object, integer, string);<br>
void actionBark(object, integer, string, string);<br>
integer [[getObjType]](object);<br>
integer getValue(object);<br>
integer makeValueless(object);<br>
integer isInCamp(object);<br>
integer getWeight(object);<br>
location getLocation(object);<br>
location [[getRelayLoc]](object);<br>
location whereIs(object);<br>
location getMasterObjLoc(integer);<br>
integer numInContainer(object);<br>
integer [[isRidable]](object);<br>
integer isRiding(object);<br>
integer [[isVirtueGuard]](object);<br>
integer isOrderGuard(object);<br>
integer isChaosGuard(object);<br>
integer isUsingVirtueShield(object);<br>
integer unRide(object);<br>
integer getAC(object);<br>
integer getMovementType(object);<br>
void setMovementType(object, integer);<br>
integer getGeneric(object, integer);<br>
integer getMoney(object);<br>
void gainFame(object, integer);<br>
void loseFame(object, integer);<br>
integer NotorietyCompare(object, object);<br>
integer notorietyCompare(object, object);<br>
void addNotoriety(object, integer);<br>
void removeNotoriety(object, integer);<br>
integer getNotoriety(object);<br>
integer getNotorietyLevel(object);<br>
integer getNotorietyLevelByNot(integer);<br>
void setNotoriety(object, integer);<br>
integer getFame(object);<br>
integer getAdjFame(object);<br>
integer getFameLevel(object);<br>
void changeFame(object, integer);<br>
void setFame(object, integer);<br>
integer getKarma(object);<br>
integer getAdjKarma(object);<br>
integer getKarmaLevel(object);<br>
void changeKarma(object, integer);<br>
void setKarma(object, integer);<br>
integer getCurHP(object);<br>
integer getMaxHP(object);<br>
integer getCurFatigue(object);<br>
integer getMaxFatigue(object);<br>
integer getCurMana(object);<br>
integer getMaxMana(object);<br>
integer getCanCarry(object);<br>
integer getSkillTotal(object);<br>
integer getCappedSkillTotal(object);<br>
integer getNaturalAC(object);<br>
integer getHPLevel(object);<br>
integer getFatigueLevel(object);<br>
integer getManaLevel(object);<br>
void setCurHP(object, integer);<br>
void setMaxHP(object, integer);<br>
void handleHealthGain(object);<br>
void setCurFatigue(object, integer);<br>
void setMaxFatigue(object, integer);<br>
void setCurMana(object, integer);<br>
void setMaxMana(object, integer);<br>
void setNaturalAC(object, integer);<br>
void addHP(object, integer);<br>
void addMana(object, integer);<br>
void addFatigue(object, integer);<br>
void doDamageWithWeapon(object, object, object, integer);<br>
void doDamage(object, object, integer);<br>
void doDamageFight(object, object, integer, integer);<br>
void doDamageType(object, object, integer, integer);<br>
void loseHP(object, integer);<br>
void loseMana(object, integer);<br>
void loseFatigue(object, integer);<br>
void restoreMobile(object);<br>
void restoreFatigue(object);<br>
void restoreHP(object);<br>
void restoreMana(object);<br>
string [[getHeShe]](object);<br>
string [[getHimHer]](object);<br>
string [[getHisHer]](object);<br>
integer hasObjEquipped(object, object);<br>
integer hasObjTypeEquipped(object, integer);<br>
integer [[getEquipSlot]](object);<br>
object [[getItemAtSlot]](object, integer);<br>
object getWeapon(object);<br>
integer isArmed(object);<br>
integer getFreeHandSlot(object);<br>
integer getYear(void);<br>
integer getMonth(void);<br>
integer getWeek(void);<br>
integer getDay(void);<br>
integer getHour(void);<br>
integer getMinute(void);<br>
integer getSeconds(void);<br>
integer isWeapon(object);<br>
integer isReallyWeapon(object);<br>
integer getSatiety(object);<br>
integer getRealStrength(object);<br>
integer getRealDexterity(object);<br>
integer getRealIntelligence(object);<br>
integer getStrength(object);<br>
integer getDexterity(object);<br>
integer getIntelligence(object);<br>
integer getStat(object, integer);<br>
integer getRealStat(object, integer);<br>
integer getStatAttributeMax(object, integer);<br>
integer setStatAttributeMax(object, integer, integer);<br>
integer modifyStat(object, integer, integer);<br>
integer modifyRealStat(object, integer, integer);<br>
integer setRealStat(object, integer, integer);<br>
integer getStatMod(object, integer);<br>
integer setStatMod(object, integer, integer);<br>
integer getSkillMod(object, integer);<br>
integer setSkillMod(object, integer, integer);<br>
void addSatiety(object, integer);<br>
integer testSkill(object, integer);<br>
integer skillTest(object, integer);<br>
integer testSkillReal(object, integer);<br>
integer skillTestReal(object, integer);<br>
integer getSkillLevel(object, integer);<br>
integer getSkillLevelReal(object, integer);<br>
integer getSkillLevelRealStat(object, integer);<br>
integer getSkillLevelNoStat(object, integer);<br>
integer getSkillLevelNoStatNoMod(object, integer);<br>
void setSkillLevel(object, integer, integer);<br>
void addSkillLevel(object, integer, integer);<br>
void loseSkillLevel(object, integer, integer);<br>
integer modifySkillMod(object, integer, integer);<br>
void setMobFlag(object, integer, integer);<br>
integer getMobFlag(object, integer);<br>
integer getSkillNumber(string);<br>
string getSkillName(integer);<br>
string getOrcishSyllable(integer);<br>
string getWispishSyllable(integer);<br>
string getLizardishSyllable(integer);<br>
string getRattishSyllable(integer);<br>
void handleWatchingSkill(object, integer);<br>
integer testAndLearnSkill(object, integer, integer, integer);<br>
integer getSkillSuccessChance(object, integer, integer, integer);<br>
object getBackpack(object);<br>
object transferGenericToContainer(object, object, integer, integer);<br>
object transferGenericToWorld(location, object, integer, integer);<br>
void destroyGeneric(object, integer, integer);<br>
object takeMoney(object, integer);<br>
object giveItem(object, object);<br>
void systemMessage(object, string);<br>
void systemMessageHued(object, integer, string);<br>
integer textMessage(object, string, integer, integer, integer);<br>
integer superBark(object, string, integer, integer, integer);<br>
void getMobsInRange(list, location, integer);<br>
void getMobsInRangeOld(list, location, integer);<br>
integer objIsInRange(location, integer);<br>
void getObjectsInRange(list, location, integer);<br>
void getObjectsInRangeWithFlags(list, location, integer, integer);<br>
integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br>
integer getObjectFlags(object, integer);<br>
integer getTerrainFlags(integer, integer);<br>
void getObjectsInRangeOfType(list, location, integer, integer);<br>
void getObjectsInSpecRange(list, location, integer, integer);<br>
object getFirstObjectOfType(location, integer);<br>
object getNextObjectOfType(location, integer, object);<br>
void getPlayersInRange(list, location, integer);<br>
void getNPCsInRange(list, location, integer);<br>
void getNPCsInRangeOld(list, location, integer);<br>
integer getTileAt(location);<br>
integer [[isInMap]](location);<br>
integer [[isInWorld]](location);<br>
integer getTileHeight(integer);<br>
void getMobsAt(list, location);<br>
void getPlayersAt(list, location);<br>
void getNPCsAt(list, location);<br>
void getObjectsAt(list, location);<br>
void getObjectsAtInZRange(list, location, integer, integer);<br>
integer getQuantity(object);<br>
integer [[getMiscData]](object);<br>
integer [[getQuality]](object);<br>
integer getHeight(object);<br>
integer getSurfaceHeight(object);<br>
void logOut(object);<br>
void safeLogOut(object);<br>
void safeLogout(object);<br>
void setHidden(object, integer);<br>
integer isHidden(object);<br>
void openGump(object, integer);<br>
void closeGump(object, integer);<br>
void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br>
void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br>
void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br>
void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br>
void doLocAnimation(location, integer, integer, integer, integer, integer);<br>
void doMobAnimation(object, integer, integer, integer, integer, integer);<br>
void doLightning(object);<br>
void beginSequence(void);<br>
void endSequence(integer);<br>
integer waitState(object);<br>
void setWaitState(object, integer);<br>
integer isInvisible(object);<br>
void setInvisible(object, integer);<br>
void setPoisoned(object, integer);<br>
void setCursed(object, integer);<br>
string getName(object);<br>
string getRealName(object);<br>
void setRealName(object, string);<br>
void setRealNameFromTemplate(object, integer);<br>
string getTitledName(object);<br>
void walkTo(object, location, integer);<br>
integer canSeeObj(object, object);<br>
integer getElevationAt(integer, integer);<br>
integer canExistAt(location, integer, integer);<br>
integer canSeeLoc(object, location);<br>
integer [[isValid]](object);<br>
integer getTemplate(object);<br>
integer getDefaultAlignment(integer);<br>
void setAlignment(object, integer);<br>
void becomeTemplate(object, integer);<br>
integer isAtHome(object);<br>
integer thinksItsAtHome(object);<br>
integer hasHome(object);<br>
location getHome(object);<br>
void setHome(object, location);<br>
location getCreationLoc(object);<br>
void getStaticObjectsAt(list, location);<br>
void getStaticObjectsAtXY(list, location);<br>
void getStaticObjectsAtXYZ(list, location);<br>
void shopKeeperOpenBusiness(object, object);<br>
void shopKeeperOpenBuying(object, object);<br>
integer hasShopKeyword(list);<br>
integer mobileWillBuy(object, object);<br>
string getNameByType(integer);<br>
integer [[getX]](location);<br>
integer [[getY]](location);<br>
integer [[getZ]](location);<br>
void [[setX]](location &, integer);<br>
void [[setY]](location &, integer);<br>
void [[setZ]](location &, integer);<br>
void moveDir(location &, integer);<br>
void debugMessage(string);<br>
void replyTo(object, object, string);<br>
void replyToMobAbout(object, object, object, string);<br>
void returnObject(object);<br>
integer containsObj(object, object);<br>
object containsObjType(object, integer);<br>
integer mobileContainsObj(object, object);<br>
void getObjectsOfTypeIn(list, object, integer);<br>
object mobileContainsObjType(object, integer);<br>
void getContainersOnMobile(list, object);<br>
void useItem(object, object);<br>
void doLookAt(object, object);<br>
string getArticle(integer);<br>
string [[objToStr]](object);<br>
void scoreToSpace(string);<br>
void scriptTrig(object, integer, object);<br>
void processTriggerCmds(object, string);<br>
void deleteIfValid(object, integer);<br>
void deleteIfValidNoFall(object, integer);<br>
void createPlaceHolder(object);<br>
integer changeRange(object, integer, integer, integer);<br>
integer findClosestArea(string &, location &, string, location, integer);<br>
integer isInArea(string, location, integer);<br>
void setLooksLikeTemplate(object, integer);<br>
void followNpc(object, object, integer);<br>
void stopFollowing(object);<br>
object getLeader(object);<br>
void runAway(object, object);<br>
integer getHungerLevel(object);<br>
void setDesireLevel(object, integer);<br>
integer [[eatObject]](object, object);<br>
void setBehavior(object, integer);<br>
void clearBehavior(object, integer);<br>
void loiter(object, integer);<br>
void goLoiter(object, location, integer);<br>
integer getDesireLevel(object);<br>
void setLoiterMode(object, integer);<br>
integer getLightVal(object);<br>
integer getLightTime(object);<br>
void setLight(object, integer, integer);<br>
integer getResource(integer &, object, string, integer, integer);<br>
integer getResourcesOnObj(object, integer, list);<br>
string getResourceName(string, integer);<br>
integer [[getResourceTypeIdByName]](integer &, string);<br>
integer hasResource(object, integer);<br>
integer hasObj(object, object);<br>
integer hasObjType(object, integer);<br>
integer hasObjTypeInBank(object, integer);<br>
void callGuards(object, object, integer);<br>
integer witnessCrime(location, object, object, string, integer, integer, integer);<br>
void criminalAct(object, object, integer, integer);<br>
void criminalActAdvanced(object, object, integer, integer, integer, integer);<br>
void committedCrimeAt(object, location, integer);<br>
void setCriminal(object, integer);<br>
integer isCriminal(object);<br>
integer [[isMurderer]](object);<br>
integer [[getMurderCount]](object);<br>
void setMurderCount(object, integer);<br>
void setResurrectionResources(object);<br>
integer canBeFreelyAggressedBy(object, object);<br>
void refreshAggression(object);<br>
void receiveAggressionFrom(object, object);<br>
void receiveUnhealthyActionFrom(object, object);<br>
void receiveHelpfulActionFrom(object, object);<br>
void copyControllerInfo(object, object);<br>
integer openContainer(object, object);<br>
void updateHint(integer, object, integer, string, string, location, object, string, integer);<br>
integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br>
integer getLocalizedDesc(string &, location &, location, location);<br>
integer getSmallestArea(string &, location);<br>
integer isInRegionWithPrefix(string &, location);<br>
integer getTrammelPhase(void);<br>
integer getFeluccaPhase(void);<br>
string getMoonPhaseStr(integer);<br>
integer getMoonGateDest(integer);<br>
integer canWield(object, object);<br>
integer isSlashing(object);<br>
integer isPiercing(object);<br>
integer isBashing(object);<br>
integer isRanged(object);<br>
integer getMaxArmorClass(object);<br>
integer getCurArmorClass(object);<br>
integer getAmmoType(object);<br>
integer getBow(object);<br>
integer setMaxArmorClass(object, integer);<br>
integer getWeaponRange(object);<br>
integer getWeaponMinRange(object);<br>
integer getWeaponHandedness(object);<br>
string getWeaponName(object);<br>
integer getAverageDamage(object);<br>
void getWeaponClass(object, integer &, integer &, integer &, integer &);<br>
void setWeaponClass(object, integer, integer, integer, integer);<br>
integer getWeaponCurHP(object);<br>
integer setWeaponCurHP(object, integer);<br>
integer getWeaponMaxHP(object);<br>
integer setWeaponMaxHP(object, integer);<br>
integer getWeaponMinStr(object);<br>
integer getWeaponSpeed(object);<br>
integer getWeaponHitSfx(object);<br>
integer getWeaponMissSfx(object);<br>
integer applyWeaponTemplate(object, integer);<br>
void [[makeDice]](string &, string, integer, integer, string, integer);<br>
void splitDice(string, string &, integer &, integer &, string &, integer &);<br>
void attack(object, object);<br>
void peace(object);<br>
void stopAttack(object);<br>
void stopFight(object, object);<br>
void getTargets(list, object);<br>
void getVisableTargets(list, object);<br>
object getFirstVisableTarget(object);<br>
object getFirstVisibleTargetInRange(object, integer);<br>
void getAttackers(list, object);<br>
void getAttackersNearby(list, object);<br>
integer getNumTargets(object);<br>
integer getNumAttackers(object);<br>
object getFirstTarget(object);<br>
object makeMultiInst(location, integer);<br>
object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br>
integer moveMulti(object, location);<br>
integer moveMultiCheck(object, location, integer);<br>
integer recycleMulti(object, integer);<br>
integer recycleMultiCheck(object, integer, integer);<br>
integer recycleMultiCheckRotate(object, integer, integer, integer);<br>
integer moveMultiMapSwitch(object, location, integer);<br>
integer isMultiComp(object);<br>
integer isMultiSlave(object);<br>
object getMultiSlaveId(object);<br>
location getMultiComponentOffset(object);<br>
integer areObjectsOn(object);<br>
integer getMultiExtents(integer, location &, location &);<br>
integer isHousingOkay(location, integer);<br>
integer areSpellsOkay(location);<br>
integer isInCityRegion(location);<br>
integer inJusticeRegion(location);<br>
integer getMultiType(object);<br>
void resetMultiCarriedDecay(object);<br>
integer multiCanExistAt(location, integer, integer);<br>
integer canMultiExistAt(object, location, integer);<br>
integer dropCheck(location &, object, integer);<br>
integer isOnMulti(object, object);<br>
object isOnAnyMulti(object);<br>
object isAnyMultiAt(location);<br>
object isAnyMultiBelow(location);<br>
integer getNumInMultiType(integer);<br>
void multiCompSetSendSlave(object, integer);<br>
integer areMobilesInMultiArea(integer, location);<br>
void getPlayersOnMulti(list, object);<br>
void getObjectsOnMulti(list, object);<br>
void sendPlayerZmoveStuff(object);<br>
integer getDecayCount(object);<br>
integer [[getDecayMax]](object);<br>
integer setDecayCount(object, integer);<br>
integer getHomeDecayRate(void);<br>
integer getNonHomeDecayRate(void);<br>
integer [[getDefaultDieDecay]](void);<br>
integer getDecayInterval(void);<br>
object mobileHasObjWithListObjOfObj(object, string, object);<br>
integer [[getPulseNum]](void);<br>
void [[setDecayTest]](integer);<br>
object getClosestMobile(location, integer);<br>
object getClosestPlayer(location, integer);<br>
object getClosestOnlinePlayer(location, integer);<br>
object getClosestMobileOrOnlinePlayer(location, integer);<br>
object getClosestVisibleOnlinePlayer(location, integer);<br>
void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br>
integer isValidMap(object);<br>
integer isMap(object);<br>
integer getMapPointer(location &, object, integer);<br>
integer copybook(object, object);<br>
integer setNPCState(object, integer);<br>
integer getNPCState(object);<br>
integer goSleep(object, integer, integer);<br>
void transferAllResources(object, object);<br>
void transferResources(object, object, integer, string);<br>
void transferGeneric(object, object, integer);<br>
void returnAllResourcesToBank(object);<br>
void returnResourcesToBank(object, integer, string);<br>
object createGlobalNPCAt(integer, location, integer);<br>
object createGlobalNPCAtSpecificLoc(integer, location);<br>
object createGlobalObjectAt(integer, location);<br>
object createGlobalObjectIn(integer, object);<br>
object createGlobalObjectOn(object, integer);<br>
object createNoResObjectAt(integer, location);<br>
object createNoResObjectIn(integer, object);<br>
object requestCreateObjectAt(integer, location);<br>
object requestCreateObjectIn(integer, object);<br>
object requestCreateNPCAt(integer, location, integer);<br>
integer defineResource(object, string, integer, integer, integer);<br>
object getChunkEgg(location);<br>
void addGlobalQuantity(object, integer);<br>
integer requestAddQuantity(object, integer);<br>
void addConsumer(location &, string, integer, integer);<br>
integer whoIsLargestConsumer(location, integer);<br>
integer resourceTypeToId(string);<br>
integer isGeneric(object);<br>
integer canBeGeneric(object);<br>
void destroyOne(object);<br>
string getROBookTitle(integer);<br>
integer getBookPages(object);<br>
void removeLeadingWords(string &, integer);<br>
object findClosestBBoard(location);<br>
void setPostTime(object);<br>
integer [[getTimeSecs]](void);<br>
integer objectsNearby(list, location &, integer, integer);<br>
void intRet(integer);<br>
void textEntry(object, object, integer, integer, string);<br>
void stringQuery(object, object, integer, string, integer, integer, integer, string);<br>
void webBrowse(object, string);<br>
void makeBeelineFailPathFind(object, integer);<br>
void overloadWeight(object, integer);<br>
void recalcWeight(object);<br>
void fixBank(object);<br>
void setStatus(object, integer, integer);<br>
integer getStatus(object, integer);<br>
integer isHair(object);<br>
integer [[isEditing]](object);<br>
integer [[isCounselor]](object);<br>
integer [[isGameMaster]](object);<br>
integer getPlayerBugStat(list, integer);<br>
integer doNPCHeartBeat(object);<br>
integer doNPCHandleStates(object);<br>
integer isManifesting(object);<br>
void addHelpRequestToQueue(object, integer, integer, string);<br>
integer removePlayerFromGame(object);<br>
void trackingTypeSelected(list, object, integer, integer, location);<br>
object doTakeMoney(object, integer, integer);<br>
void doSCommand(object, string);<br>
integer resurrect(object, integer);<br>
void destroyContents(object);<br>
integer canHold(object, object);<br>
void transferPlayer(object, object, string);<br>
void checkTransferAccount(object, object);<br>
integer getGMCallStatus(void);<br>
void setGMCallStatus(integer);<br>
integer getEncumbrance(object);<br>
void [[getCurrentTimeStr]](string &);<br>
void setROBookNum(object, integer);<br>
integer [[getPlayAge]](object);<br>
integer isCorpse(object);<br>
integer getCorpseBodyType(object);<br>
integer [[isObscene]](string);<br>
void logEntry(integer, integer, object, string, string, string, string);<br>
integer [[getAccountNum]](object);<br>
integer getCharacterNum(object);<br>
integer getCombatMode(object);<br>
integer isInvulnerable(object);<br>
void makeInvulnerable(object);<br>
void makeVulnerable(object);<br>
void openGenericGump(object, object, integer, integer, integer, list, list);<br>
void setTile(location, integer);<br>
integer getTile(location);<br>
void setElevation(location, integer);<br>
integer getElevation(location);<br>
void createStatic(location, integer);<br>
void createStaticHued(location, integer, integer);<br>
void updatesOn(void);<br>
void updatesOff(void);<br>
void escript(object, string, string);<br>
integer [[abs]](integer);<br>
integer isGoldAccount(object);<br>
GetContents
0
149
462
2012-11-24T18:52:23Z
Batlin
3
Created page with 'integer '''getContents'''(list ''TargetList'', object ''Container'');<br> integer '''getContents'''(list ''TargetList'', object ''Container'');<br> At the beginning of this func…'
wikitext
text/x-wiki
integer '''getContents'''(list ''TargetList'', object ''Container'');<br>
integer '''getContents'''(list ''TargetList'', object ''Container'');<br>
At the beginning of this function the target list ''TargetList'' is emptied.<br>
Then if the given container is valid, the contents are appended to the ''TargetList''.<br>
This function is not recursive if it finds a container. You will need to call [[getContents]] on that container yourself.
Return to the [[Command List]].
GetItemAtSlot
0
150
466
2012-11-24T19:17:21Z
Batlin
3
Created page with 'object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 o…'
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.
If the slot number is not between 1 or 30 then [[NULL]] is returned.
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will return the mobile's direction as if it were an object.
Return to the [[Command List]].
467
466
2012-11-24T19:27:40Z
Batlin
3
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.
If the slot number is not between 1 or 30 then [[NULL]] is returned.
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus calling ''getItemAtSlot(30)'' will crash the server.
Return to the [[Command List]].
468
467
2012-11-24T19:36:53Z
Batlin
3
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.
If the slot number is not between 1 or 30 then [[NULL]] is returned.
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus calling ''getItemAtSlot(30)'' will crash the server. Also view : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146]
Return to the [[Command List]].
469
468
2012-11-24T19:37:54Z
Batlin
3
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.
If the slot number is not between 1 or 30 then [[NULL]] is returned.
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus calling ''getItemAtSlot(30)'' will crash the server. Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug]
Return to the [[Command List]].
470
469
2012-11-24T19:41:36Z
Batlin
3
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.
If the slot number is not between 1 or 30 then [[NULL]] is returned.
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br>
Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug]
Return to the [[Command List]].
471
470
2012-11-24T20:18:54Z
Batlin
3
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.<br>
If the slot number is not between 1 or 30 then [[NULL]] is returned.<br>
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br>
Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug]
Return to the [[Command List]].
497
471
2016-07-21T18:58:21Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br>
If the given Mobile is not a valid mobile then [[NULL]] is returned.<br>
If the slot number is not between 1 or 30 then [[NULL]] is returned.<br>
Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned.
You can use ''getItemAtSlot(29)'' to get the bank object.
There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br>
Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br>
Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br>
Also view the forums : [http://forums.uo98.org/viewtopic.php?f=32&t=4146 Discussion of this bug]
Return to the [[Command List]].
68a0a7f4c277341a3d9b0a35037aa2eb7cdeda8e
GetEquipSlot
0
151
473
2012-11-24T20:32:37Z
Batlin
3
Created page with 'integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> This function will return 0 if the provided object is a mo…'
wikitext
text/x-wiki
integer '''getEquipSlot'''(object ''AnyObject'');
This function will return 0 if the provided object is not valid.<br>
This function will return 0 if the provided object is a mobile.<br>
The equipment slot is stored in the quality field as an ''unsigned char'' in the tiledata file.
This function is closely related to the [[getQuality]] function.
Return to the [[Command List]].
GetQuality
0
152
474
2012-11-24T20:35:17Z
Batlin
3
Created page with 'integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The quality is stored in the quality field as an ''unsigne…'
wikitext
text/x-wiki
integer '''getEquipSlot'''(object ''AnyObject'');
This function will return 0 if the provided object is not valid.<br>
The quality is stored in the quality field as an ''unsigned char'' in the tiledata file.
This function is closely related to the [[getEquipSlot]] function.
Return to the [[Command List]].
475
474
2012-11-24T20:35:35Z
Batlin
3
wikitext
text/x-wiki
integer '''getQuality'''(object ''AnyObject'');
This function will return 0 if the provided object is not valid.<br>
The quality is stored in the quality field as an ''unsigned char'' in the tiledata file.
This function is closely related to the [[getEquipSlot]] function.
Return to the [[Command List]].
GetMiscData
0
153
477
2012-11-24T20:45:35Z
Batlin
3
Created page with 'integer '''getMiscData'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The miscellaneous data is stored in the miscdata field as a…'
wikitext
text/x-wiki
integer '''getMiscData'''(object ''AnyObject'');
This function will return 0 if the provided object is not valid.<br>
The miscellaneous data is stored in the miscdata field as an ''unsigned short'' in the tiledata file.
The miscdata field was previously unknown in the UO world.<br>
See here for a discussion : http://www.joinuo.com/forums/viewtopic.php?f=32&t=609<br>
Derrick also provided a patch for RunUO : http://www.joinuo.com/forums/viewtopic.php?f=27&t=61<br>
We also notified UoFiddler about this : http://uofiddler.polserver.com/ (see version change 4.4)
Return to the [[Command List]].
478
477
2012-11-24T20:46:10Z
Batlin
3
wikitext
text/x-wiki
integer '''getMiscData'''(object ''AnyObject'');
This function will return 0 if the provided object is not valid.<br>
The miscellaneous data is stored in the miscdata field as an ''unsigned short'' in the tiledata file.
The miscdata field was previously unknown in the UO world.<br>
See here for a discussion : http://www.joinuo.com/forums/viewtopic.php?f=32&t=609<br>
Derrick also provided a patch for RunUO : http://www.joinuo.com/forums/viewtopic.php?f=27&t=610<br>
We also notified UoFiddler about this : http://uofiddler.polserver.com/ (see version change 4.4)
Return to the [[Command List]].
GetDefaultDieDecay
0
96
479
336
2012-11-24T20:49:04Z
Batlin
3
wikitext
text/x-wiki
integer '''getDefaultDieDecay'''(void);<br>
This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode the server is currently using. The following list represents the return values of this function and the related decay modes.
<pre>
0x48 = mode 1
0xFA = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
494
479
2016-07-21T18:56:06Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
integer '''getDefaultDieDecay'''(void);<br>
This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://forums.uo98.org/viewtopic.php?f=32&t=852 House decay time].
This function can be used to detect the decay mode the server is currently using. The following list represents the return values of this function and the related decay modes.
<pre>
0x48 = mode 1
0xFA = mode 0
0xFF = mode 2
</pre>
Please refer to the [[setDecayTest]] function for more information about the modes.
Return to the [[Command List]].
46cc5278713810aad08eb6de7ab0bd54e687d1af
GetSex
0
78
480
290
2012-11-24T20:52:33Z
Batlin
3
wikitext
text/x-wiki
integer '''getSex'''(object ''Mobile'');<br>
The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2.
0: the given object is not a valid mobile or is a valid mobile and has a male body type (400)<br>
1: the given object is a valid mobile and has a female body type (401)<br>
2: the given object is a valid mobile but does not have a male nor a female body type<br>
Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br>
Because ghosts have a body type of 402 or 403 you cannot use this function on player ghosts.
Return to the [[Command List]].
485
480
2012-11-24T20:56:07Z
Batlin
3
wikitext
text/x-wiki
integer '''getSex'''(object ''Mobile'');<br>
The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2.
0: the given object is not a valid mobile or is a valid mobile and has a male body type (400)<br>
1: the given object is a valid mobile and has a female body type (401)<br>
2: the given object is a valid mobile but does not have a male nor a female body type<br>
Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br>
Because ghosts have a body type of 402 or 403 you should not use this function on player ghosts to determine the sex.
Return to the [[Command List]].
SameSex
0
79
481
291
2012-11-24T20:53:39Z
Batlin
3
wikitext
text/x-wiki
integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br>
The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 is returned.
Because a 'sex value' of 0 is used for both male mobiles and invalid mobiles, you should use the [[isMobile]] function to validate the objects first to avoid unwanted results!<br>
Because ghosts have a body type of 402 or 403 you should not use this function to compare the sex of dead players.
Return to the [[Command List]].
GetHimHer
0
81
482
293
2012-11-24T20:54:41Z
Batlin
3
wikitext
text/x-wiki
integer '''getHimHer'''(object ''Mobile'');<br>
The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]].
sex=0: "him" is returned<br>
sex=1: "her" is returned<br>
sex=2: "it" is returned<br>
If an invalid object/mobile is provided than the string "him" will be returned, see [[getSex]] for more details.<br>
Because player ghosts have a body type of 402 or 403, they will be considered "it".
Return to the [[Command List]].
GetHeShe
0
80
483
292
2012-11-24T20:55:04Z
Batlin
3
wikitext
text/x-wiki
integer '''getHeShe'''(object ''Mobile'');<br>
The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]].
sex=0: "he" is returned<br>
sex=1: "she" is returned<br>
sex=2: "it" is returned<br>
If an invalid object/mobile is provided than the string "he" will be returned, see [[getSex]] for more details.<br>
Because player ghosts have a body type of 402 or 403, they will be considered "it".
Return to the [[Command List]].
GetHisHer
0
82
484
294
2012-11-24T20:55:39Z
Batlin
3
wikitext
text/x-wiki
integer '''getHisHer'''(object ''Mobile'');<br>
The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex]].
sex=0: "his" is returned<br>
sex=1: "her" is returned<br>
sex=2: "its" is returned<br>
If an invalid object/mobile is provided than the string "his" will be returned, see [[getSex]] for more details.<br>
Because player ghosts have a body type of 402 or 403, they will be considered "its".
Return to the [[Command List]].
Main Page
0
1
486
433
2014-03-04T19:51:38Z
Batlin
3
/* UO Demo Forum */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
[[UoDemoInstall.exe]] is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br>
'''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here (but it will be deleted eventually) : [http://joinuo.com/oldforums/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com]
=== UO:98 Public Ultima Online Server ===
[[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]].
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
487
486
2016-07-21T18:42:30Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://forums.uo98.org/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
[[UoDemoInstall.exe]] is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br>
'''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://forums.uo98.org/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== Join SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.uo98.org/svn/public/UODemo/ svn.uo98.org]
=== UO:98 Public Ultima Online Server ===
[[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.uo98.org/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]].
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
9176e37e13e5624f58a8a39faa051224f9278435
490
487
2016-07-21T18:51:56Z
Derrick
2
/* SVN Server */
wikitext
text/x-wiki
__NOTOC__
__NOTOC__
__NOTOC__ [[Category:Full Protection|{{PAGENAME}}]]
= <big>'''Welcome the UO Demo Wiki.'''</big> =
UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file.
The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://forums.uo98.org/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics.
To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites.
== Featured Contents ==
[[UO:98]] UO Server
[[Mass M Decompiler]]
[[Command List|The Command List]]
[[Scripts|About the obfuscated scripts]]
[[Dating the Ultima Online Demo]]
We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]].
== UO Demo Files ==
=== Files on the UO:The Second Age retail CD ===
[[UoDemoInstall.exe]] is in the root of the CD.
After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]].
[[uodemo.exe]] is the executable, it contains authentic server code and a full client.
[[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]].
== Modified UODemo Files ==
<big>'''UoDemo+.''' (UO Demo Plus)</big>
The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within.
<big>'''UoDmClnt.''' (UO Demo Client)</big>
The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions.
== UO Demo Forum ==
'''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br>
'''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum]
== UO Demo Development ==
=== Unpacking UODemo.DAT ===
[http://forums.uo98.org/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive]
[[Mass M Decompiler|Decompiling the Scripts]]
=== SVN Server ===
A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.uo98.org/svn/public/UODemo/ svn.uo98.org]
=== UO:98 Public Ultima Online Server ===
[[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.uo98.org/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]].
=== UO Demo Class Library ===
The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here].
=== UOSL Language ===
[[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010.
[[UOSL Parser]] - Command line script validator and normalizer.
=== Using Subversion ===
SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN].
ba9e3aba93ba4ce6e031c3c0a33d0ae5b696a5c2
UO:98
0
123
488
431
2016-07-21T18:47:08Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client.
UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions.
[[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]]
[[File:UO98 Ingame.png|400px|thumb|right|In Game]]
[[File:UO98 God Client.JPG|400px|thumb|right|God Client support]]
Please see also the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forums] at JoinUO
= Installer =
Download from UO98: [http://download.uo98.org/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB)
= Installation prerequisites =
In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform.
* Microsoft Windows XP, Vista or 7
* Microsoft .Net 4.0 Client Profile.
* Ultima Online Client version 1.25.35 through 5.x
** (6.x packet protocols not yet implemented)
= Installing UO:98 =
You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders.
The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install.
It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forums] for help
= Using UO:98 =
As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog.
UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client.
* Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1)
* Port: 2593
The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt.
The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q
It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file.
The server as distributed has one administrator account:
* Username: '''Admin'''
* Password: '''password'''
Additional accounts can be auto created by simply attempting login on a non-existent account.
The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.uo98.org/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together.
= Administrating UO:98 =
More administration tools are planned.
Currently the world is most easily modified with the "[[God Client]]" which you may be able to find out there somewhere on the web.
== Accounts ==
User accounts are stored in UO98/[[.rundir|rundir]]/UO98/accounts.xml
To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves.
Standard values for accessflags are:
* Player - No special Access
* Editor - [[God Client]] Features (i.e., GM). See also: [[IsEditing]]
* Admin - Editor, plus access to '']save'' and '']shutdown'' commands
== In Game Commands ==
=== GM"cheat" Commands ===
These commands are implemented in the gmcheat.uosl script.
; [spawn <templateid>
: Creates a templated entity. Templates are defined in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]]
; [spawnitem <itemid>
: Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q)
; [tele <X> <Y> [Z]
: Teleports your to the specified map location. Z is optional.
; [setskill <#> <val>
: Sets your skill of # to the specified value (integer 0-100)
; [setskill all <val>
: Sets all your skills to the specified value (integer 0-100)
; [listskills
: Lists all the numeric skill id's (for use in the setskill command)
; [addscript <name>
: Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy
; [where
: Prints our your location.
; [setname <new name>
: Sets the name (RealName) of the target
; [getserial
: Reports the global serial of the targeted object. See also: [[Objtoint]]
; [gethue
: Reports the hue of the targeted object
; [getheight
: Reports the height of the targeted object
; [getelevation
: Reports the Z location of the targeted object
=== SCommands ===
These commands are built into UODemoDLL and are not scripted (note the ])
; ]save
: Saves the world to dynamic0.mul
; ]coun [me|<serial> [type]]
: Makes the target (or yourself if "me") a counselor.
; ]ucoun [me|<serial>]
: Unmakes the target a counselor
; ]shutdown
: Shuts down the server, without save.
; ]test
: This simply verifies that the "SCommands" are working.
== Handy Templates ==
; 3501
: Loaded spellbook
; 3506
: Reagent bag
; 1504
: 100 gold
; 1900-1920
: House deeds
; 1800-1805
: Boat deeds
For more templates, look in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]]
== Handy Scripts==
These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ...
; gmcheat
: Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]]
; commandDelete
: Delete targeted item
; commandZap
: Delete Targeted NPC (Don't Zap players!)
; commandInvulnerable
: Makes the targeted Mobile invulnerable. Inverse is commandVulnerable
; commandSlay
: Kills the targeted mobile
; commandResurrect
: Ressurrects the targeted mobile (player)
; commandFreeze
: Freezes the targeted Mobile. Inverse is commandUnFreeze
; commandSquelch
: Squelches the targeted Mobile. Inverse is commandUnSquelch
; Heavy
: Sets the weight of an item to 255, making it immovable.
The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors
= How does it work =
UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server.
The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions.
A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL
Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]].
= Development =
[[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]]
[[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]]
[[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]]
UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements.
The UO:98 project is Copyright © 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0]
== Getting the Source ==
The UO:98 source code is available on our [http://svn.uo98.org/svn/public/ public SVN].
You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first.
The UO:98 SVN URL is: http://svn.uo98.org/svn/public/UO98
If not familiar with Subversion (SVN), in windows [http://tortoisesvn.net TortoiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html
To use TortoiseSVN to check out the solution:
* Install Tortoise SVN, and reboot your PC.
* Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98)
* Right click in an empty area of the folder choose "SVN Checkout..."
* URL of repository: http://svn.uo98.org/svn/public/UO98
* Checkout Directory: C:\UO98 (if that's where UO 98 is installed)
* Click OK.
* You will get a warning about checking out to an existing directory, click OK.
** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion)
* The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions.
If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals.
Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution.
== The Solution File ==
[[File:Uo98solution.JPG|150px|thumb]]
The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only.
Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe.
Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything".
There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]].
== UODemoDLL ==
To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM
If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll
There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it.
To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL.
== Community ==
In addition to this [[Main_Page|UODemo wiki]], The [http://forums.uo98.org/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals.
We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forum] and [http://forums.uo98.org/viewforum.php?f=32 UODemo forum] and say hello.
= Credits =
UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project.
eeb3fb25da8034407d45a87905b4e2e289c084d6
Mass M Decompiler
0
17
489
281
2016-07-21T18:49:25Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory.
If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum]
'''Current:'''<br>
[http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%203).zip Download Mass M Decompiler (Publish 3)].<br>
NOTE: This version uses the UO Demo SDK and also fixed a bug related with the decompilation of the targetloc event, this bug was reported by Garret of [http://www.ruosi.org ruosi.org].
'''Archived:'''<br>
[http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br>
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
[http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)].
Technical information about the M files can be found [[scripts|here]].
d5baf8aa2237f99756a0d212c1a463c3f79888cf
UOSL Language Package
0
89
491
419
2016-07-21T18:53:42Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
== UOSL Language Package for Visual Studio 2010 v2.0 ==
=== Features ===
[[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]]
* Active UOSL source parsing displays syntax and grammar errors as you work.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Intellisense QuickInfo, Statement Completion and Parameter info:
** Keywords, local and inherited variables and functions
** Full library of core functions
** Trigger definitions
* Automatic line indenting.
* Navigate to inherited files with a triple click on the inherits line.
* Visual brace matching
* Visual highlighting of selected identifiers within scope.
* Text colorization for keywords and constants.
=== Requirements ===
* Visual Studio 2010.
** Express editions cannot be supported currently.
* .Net 3.5 and .Net 4.0
* A decent workstation:
** This extension does real-time parsing of UOSL source files.
=== Install Instructions ===
* Download:
** Binary: [http://download.uo98.org/Apps/UOSLpkg.vsix HTTP]
** Source:
*** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Uninstall First:
** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs.
** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010
* Double click UOSLpkg.vsix to install this extension to Visual Studio.
* Restart Visual Studio
== Version History ==
=== Version 2.0.0.0: Release Date 5/23/2011 ===
Known issues:
* On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected.
* The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything.
* Friendly names for core function parameters are not yet available
* In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas.
* Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration
=== Version 1.0.0.0: Release date 4/10/2011 ===
Known issues:
*Do not use.
== Project Credits: ==
;[mailto:batlin@uo98.org Batlin]
:Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list.
;[mailto:derrick@alienseed.com Derrick]
:UOSL Parser and VS2010 language extension.
e5e81f5025b2559bd2cceb32abbefcb33ae0068f
UOSL Parser
0
92
492
434
2016-07-21T18:55:02Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 4.0
=== Install Instructions ===
* Download:
** Binary Distibution: [ftp://download.uo98.org/Apps/UOSL.zip FTP] | [http://download.uo98.org/Apps/UOSL.zip HTTP]
** Source: (latest version requires .net 4.0)
*** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
0b9695a708407d32649fd45c109d19f599e75859
493
492
2016-07-21T18:55:21Z
Derrick
2
wikitext
text/x-wiki
== UOSL Parser ==
=== Features ===
* Parses and normalizes UOSL script.
* Supports multiple language extensions (UOSL Extended, Enhanced and Native)
* Command line tool.
* DLL public interfaces for integration into your application.
=== Requirements ===
* Microsoft Windows + .Net 4.0
=== Install Instructions ===
* Download:
** Binary Distibution: [http://download.uo98.org/Apps/UOSL.zip HTTP]
** Source: (latest version requires .net 4.0)
*** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library]
* Unzip if using Binary Distibution. Executable is UOSL.exe
e64a4aac4484d7da5317bbaf1885695845987a3e
Uodemo+
0
15
495
406
2016-07-21T18:56:59Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
A list of supported environment variables:<br>
Publish 15+: UODEMODLL=<filename (DLL file)><br>
Publish 14+: USEACCOUNTNAME=YES/NO<br>
Publish 14+: MANUALLOGON=YES/NO<br>
Publish 13+: IGNOREDYNIDX0=YES/NO<br>
Publish 12+: REGKEYNAME=<registry key name><br>
Publish 12+: LOCALCOUNSELOR=1/2/3/Seer/Counselor/Senior Counselor<br>
Publish 11: REALDAMAGE=YES/NO<br>
Publish 8+: SAVEDYNAMIC0=YES/NO<br>
Publish 6+: LOGFILE=<filename> (Razor format)<br>
Publish 4+: RUNDIR=<directory><br>
Publish 3+: DATFILE=<filename><br>
By default: [[SERVERNAME]]=<directory><br>
== Publish 15 ==
The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br>
== Publish 14 ==
The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br>
== Publish 13 ==
The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br>
== Publish 12 ==
The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br>
== Publish 11 ==
The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br>
EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish!
== Publish 10 ==
Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)]
== Publish 9 ==
Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)]
== Publish 8 ==
The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)]
== Publish 7 ==
The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)]
== Publish 6 ==
Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)]
== Publish 5 ==
Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)]
== Publish 4 ==
With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)]
== Publish 3 ==
Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)]
== Publish 2 ==
It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!''
== Publish 1 ==
The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)]
acde1e4aeec2ef0ef61b74c2bbfd8214cc73f9db
Secrets
0
16
496
341
2016-07-21T18:57:33Z
Derrick
2
Update URL's to point to UO98.org
wikitext
text/x-wiki
The Ultima Online Demo contains some features that people didn't know about till now!
'''Did you know you can tell the wisp to go away?'''<br>
Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br>
'''login.txt'''<br>
The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br>
'''The account numbers found in [[dynamic0.mul]] are IP addresses (of OSI programmers back then?)'''<br>
Analysis of the account numbers has revealed that there's a direct match between them and IP addresses. These IP addresses are now owned by EA and were most probably owned by OSI in 1998 (?). The Avatar, the hero of the demo, has has a fixed account number 2130706433 which equals the IP address 127.0.0.1 aka localhost. [http://forums.uo98.org/viewtopic.php?f=32&t=522 forum topic]
'''The poisoning script contains a serious bug.'''<br>
It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br>
(with thanks to Dies Irae)<br>
dab729c82f680ca170d56005b7399a93aeafe07f